我正在研究使用“vi”和“emacs”编写的一些遗留C ++代码,我正在尝试构建一个eclipse CDT设置来维护它(在Linux上)。我遇到的两个主要问题是索引需要很长时间(超过4小时),甚至一旦完成,eclipse几乎没有响应。
代码库以“3-4级深度”方式构建:
/system/${category}/${library}/
/server/${serverName}/${component}/
示例:
/system/CORE/CommandLine/*.cpp
/system/CORE/Connection/*.cpp
...
/server/Authentication/DB/Objects/*.cpp
/server/Authentication/Main/*.cpp
/ system / *下约有200个“模块”,/ server / Authentication / *下约有50个。 还有一个令人惊讶的复杂制作系统,有20年的价值 make-code 由想要展示他们的制作能力的人写的: - )
到目前为止,我尝试了两种方法
1)两个eclipse cdt项目,即/ system和/ Authentication
2)每个“模块”一个eclipse cdt项目,以+200模块结束。我甚至计算了模块之间的依赖关系。
在这两种方法中,索引都需要很长时间。方法1)我遇到了很多未解决的依赖问题。方法2)eclipse几乎没有响应,当我按住Ctrl键单击一个功能时,我可以去喝咖啡,然后在它响应之前回来......
那里的任何人都曾参与过像这样的大项目吗?你有什么建议?
答案 0 :(得分: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
在这里,我使用-Xmx4096M
来提供4Gb的RAM。
要提高响应能力,您还需要配置Indexer Cache limits。我建议将所有参数增加2-3倍,具体取决于项目规模。
答案 1 :(得分:1)
使用项目资源过滤器对我帮助很大。 我从项目树文件夹中删除了我不想修改或提交索引的文件夹。
要创建新过滤器,只需右键单击项目,然后打开属性面板,然后到达资源 - >资源过滤器
有时,如果项目源太大(例如:大约5GB),则需要使用过滤器,否则索引过程永远不会正确结束。
答案 2 :(得分:0)
-Xss8g
{@ 1}}以防止堆栈溢出。
另请考虑eclipse.ini
。
在Ubuntu 14.04上测试。