什么是大型C++项目的推荐Eclipse CDT配置(索引器需要永远)

kri*_*ico 18 c++ eclipse eclipse-cdt

我正在研究使用"vi"和"emacs"编写的一些遗留C++代码,我正在尝试构建一个eclipse CDT设置来维护它(在linux上).我一直面临的两个主要问题是索引需要很长时间(超过4小时),即使一旦完成,eclipse几乎没有响应.

代码库以"3-4级深度"方式构建:

/system/${category}/${library}/
/server/${serverName}/${component}/
Run Code Online (Sandbox Code Playgroud)

例:

/system/CORE/CommandLine/*.cpp
/system/CORE/Connection/*.cpp
...
/server/Authentication/DB/Objects/*.cpp
/server/Authentication/Main/*.cpp
Run Code Online (Sandbox Code Playgroud)

在/ system/*下大约有200个"模块",在/ server/Authentication/*下大约有50个.还有一个令人惊讶的复杂的制作系统,有20年的制作代码,由想要展示他们的制作能力的人写的:-)

到目前为止,我尝试了两种方法

1)两个eclipse cdt项目,即/ system和/ Authentication

2)每个"模块"一个eclipse cdt项目,以+200模块结束.我甚至计算了模块之间的依赖关系.

在这两种方法中,索引都需要很长时间.方法1)我遇到了很多未解决的依赖问题.方法2)eclipse几乎没有响应,当我按住ctrl +点击一个功能我可以去喝咖啡然后回来之前回复...

那里的任何人都曾参与过像这样的大项目吗?你有什么建议?

ks1*_*322 19

这里的一般建议是为Eclipse提供更多RAM.首先,您需要调整eclipse.ini配置文件,因为默认配置文件不适合大型项目.这是我的eclipse.ini档案:

-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.100.v20110502
-product
org.eclipse.epp.package.cpp.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms512M 
-Xmx4096M 
-XX:PermSize=256M 
-XX:MaxPermSize=512M
Run Code Online (Sandbox Code Playgroud)

在这里,我曾经-Xmx4096M提供4Gb的RAM.

要提高响应速度,还需要配置Indexer Cache限制.我建议将所有参数增加2-3倍,具体取决于项目大小.