大型代码库的浏览,学习,查找引用,符号跳转等等,用什么工具比较好? visual studio 顶不住啊......

2021-04-06 14:00:46 +08:00
 yazoox

有一款老产品,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 硬盘

6904 次点击
所在节点    C++
38 条回复
feelapi
2021-04-06 14:04:53 +08:00
sourceinsight, 唯一选择。几千万行的代码库都没问题。
borisz
2021-04-06 14:07:58 +08:00
sourceinsight + 1
bfdh
2021-04-06 14:14:52 +08:00
sourceinsight + 1
zzz0xxx
2021-04-06 14:21:31 +08:00
opengork
nuistzhou
2021-04-06 14:24:51 +08:00
GitHub 网页版的索引能满足吗
yazoox
2021-04-06 14:24:57 +08:00
@feelapi
@borisz
@bfdh
还别说,你们一提,我想起来了。多年以前,我做 c++项目的时候,还用过 source insight 。
刚才去看了一眼,这么多年过去了,这产品,咋没有啥变化啊......
zhongrs232
2021-04-06 14:27:38 +08:00
@yazoox 更新到 source insight4.0 了,支持 utf-8 和 GBK 编码,对中文的支持更友好一些
shylockhg
2021-04-06 14:31:02 +08:00
挺好奇全量编译一次要多久
scinart
2021-04-06 14:48:34 +08:00
opengrok + 1
yazoox
2021-04-06 14:57:25 +08:00
@shylockhg
一个半小时左右
minami
2021-04-06 15:18:24 +08:00
都说 sourceinsight,我说个 understand 吧,跨平台版的 sourceinsight
justforlook44444
2021-04-06 15:33:50 +08:00
source insight mac 上能用吗
typetraits
2021-04-06 15:39:18 +08:00
我看 Chromium 源码,git repo 35G 左右吧,代码 15G,我用 VSCode + vscode-clangd 扩展,利用 Chromium 里面提供的脚本生成 compile_commands.txt ,直接打开项目目录就可以,clangd 索引完成前每打开一个新文件需要等待几秒,索引完成之后跳转、查找关键字速度就都很快了
elmagnificogg
2021-04-06 19:01:48 +08:00
source insight
786375312123
2021-04-06 19:03:43 +08:00
@yazoox 那这个项目也不大啊,我这里有三个编译时间都在一个半小时左右的项目。用 vs 基本都可以正常打开,调试。不过是工作站级别的机器
xuanbg
2021-04-06 19:21:11 +08:00
从不抱着学习的目的去看大型代码库。屎山代码有什么好看的
FrankHB
2021-04-06 20:43:30 +08:00
C 艹屎山还指望啥查找引用,记明白标识符直接开个 cmd rg 一把梭基本上都比 clangd 靠谱,更别说什么 VS 了……
comi
2021-04-06 22:26:49 +08:00
sourceinsight
ch2
2021-04-06 23:40:23 +08:00
还是放弃那些功能比较实在
poringking
2021-04-07 02:40:14 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/768365

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX