
有一款老产品,c++写的代码,有十几二十年了吧。.vcproj 估计有几百个,代码行数没有上千万,几百万还是有的。源代码库拉下来,有几十 GB 吧......
有时候,需要查看一下老代码,了解学习一下,某功能当初是怎么设计实的(毕竟这么多年,当初写的人,不在公司了),现在的功能,需要按照或者参考以前的设计和实现。
尝试过,建立一个 visual studio 的 solution,把所有的 projects 都添加进来,等 vs 的索引完毕,就能够跳转了,比如,go to definition or references,etc.。可是,这个时候,通常,vs (vs2019) 就“死机了”。
目前做的是前端项目,也很大。查看代码,用 vscode,还行,顶得住。如果在远程的机器上,我就安装 neovim + coc + leaderF + ripgrep,也是可以正常使用的。
但是,这个 c++的项目,不知道这个方法行不行。
所以,来问问大家,有没有碰到过这样的情况,需要查看 /学习老的项目代码,该项目代码库又很庞大。怎么索引,代码跳转呢?谢谢。
p.s. 现在在内部的 gitlab 上面直接搜索,效率太低了......
p.s. 我的机器是至强的 32 核心,64G 内存, ssd 硬盘
1 feelapi 2021-04-06 14:04:53 +08:00 sourceinsight, 唯一选择。几千万行的代码库都没问题。 |
2 borisz 2021-04-06 14:07:58 +08:00 sourceinsight + 1 |
3 bfdh 2021-04-06 14:14:52 +08:00 sourceinsight + 1 |
4 zzz0xxx 2021-04-06 14:21:31 +08:00 opengork |
5 nuistzhou 2021-04-06 14:24:51 +08:00 via iPhone GitHub 网页版的索引能满足吗 |
6 yazoox OP |
7 zhongrs232 2021-04-06 14:27:38 +08:00 @yazoox 更新到 source insight4.0 了,支持 utf-8 和 GBK 编码,对中文的支持更友好一些 |
8 shylockhg 2021-04-06 14:31:02 +08:00 挺好奇全量编译一次要多久 |
9 scinart 2021-04-06 14:48:34 +08:00 opengrok + 1 |
11 minami 2021-04-06 15:18:24 +08:00 都说 sourceinsight,我说个 understand 吧,跨平台版的 sourceinsight |
12 justforlook44444 2021-04-06 15:33:50 +08:00 source insight mac 上能用吗 |
13 typetraits 2021-04-06 15:39:18 +08:00 我看 Chromium 源码,git repo 35G 左右吧,代码 15G,我用 VSCode + vscode-clangd 扩展,利用 Chromium 里面提供的脚本生成 compile_commands.txt ,直接打开项目目录就可以,clangd 索引完成前每打开一个新文件需要等待几秒,索引完成之后跳转、查找关键字速度就都很快了 |
14 elmagnificogg 2021-04-06 19:01:48 +08:00 via Android source insight |
15 786375312123 2021-04-06 19:03:43 +08:00 @yazoox 那这个项目也不大啊,我这里有三个编译时间都在一个半小时左右的项目。用 vs 基本都可以正常打开,调试。不过是工作站级别的机器 |
16 xuanbg 2021-04-06 19:21:11 +08:00 从不抱着学习的目的去看大型代码库。屎山代码有什么好看的 |
17 FrankHB 2021-04-06 20:43:30 +08:00 C 艹屎山还指望啥查找引用,记明白标识符直接开个 cmd rg 一把梭基本上都比 clangd 靠谱,更别说什么 VS 了…… |
18 comi 2021-04-06 22:26:49 +08:00 sourceinsight |
19 ch2 2021-04-06 23:40:23 +08:00 via iPhone 还是放弃那些功能比较实在 |
20 poringking 2021-04-07 02:40:14 +08:00 |
21 domodomo 2021-04-07 03:23:19 +08:00 source-insight+1,几年前常用 很多 C 艹商业大型代码库里面的编码水平都不咋地,可以说又丑又烂,有些能运行起来都是奇迹 |
22 seesky 2021-04-07 04:04:00 +08:00 要不考虑下 scitools understand, |
23 LANB0 2021-04-07 07:13:25 +08:00 sourceinsight + 1 |
24 pythonee 2021-04-07 07:46:44 +08:00 via Android source insights |
25 Mithril 2021-04-07 08:14:55 +08:00 Visual Studio 这东西除非你是 SSD,不然就它那个 32bit 的 devenv,装几个插件打开个大型工程就直接炸了。一般项目太大就直接拆 sln 了,或者只加载必要的项目。 如果只看代码的话其实不需要真的语义分析建立索引,只需要 token 能查到就行了。跳转不那么精准也能忍。opengrok 或者 sourcegraph 这种基本也就够了。 |
26 52coder 2021-04-07 09:22:21 +08:00 sourceinsight + 1,转到 mac 后唯一不习惯的地方,渐渐开始用 clion |
27 52coder 2021-04-07 09:23:43 +08:00 想要一款跨平台的,目前感觉还是 sourceinsight 顺手 |
29 HangoX 2021-04-07 11:51:35 +08:00 https://sourcegraph.com/github.com/square/okhttp 简单浏览都是用这个,网页版直接看 |
30 JJFJJ 2021-04-07 12:06:07 +08:00 曾经开发 VNDK,开发编译都是 ubuntu,虽然可以 wine 下安装 source insight 但是使用不是很好。最后的解决办法是:ubuntu 安装 samba,把工程目录共享给 windows 电脑使用,在 windows 上进行代码阅读编辑 |
31 gxm44 2021-04-07 14:10:19 +08:00 sourceinsight + 1 |
32 zhusimaji 2021-04-07 14:20:27 +08:00 sourceinsight 当年写固件的时候用的神器 |
33 mxi1 2021-04-07 14:24:03 +08:00 via Android 根据编译过程,生成 compdb,一般叫 compile_commnads.json |
34 mxi1 2021-04-07 14:25:28 +08:00 via Android 不小心按到回车了,compdb 是很多 IDe 都支持的,比如 vs code,你可以上网搜搜怎么生成和使用 |
35 binux 2021-04-07 14:40:23 +08:00 via Android @typetraits 直接 https://source.chromium.org/ 搜索它不香吗? |
36 macha 2021-04-07 16:27:20 +08:00 只有 sourceinsight 一条路可走了。别的要么扛不住,要么不好用。 |
38 asuraa 2021-06-21 14:33:01 +08:00 只能 sourceinsight 了 别的都够呛 |