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

时间:2012-03-05 10:31:51

标签: c++ eclipse eclipse-cdt

我正在研究使用“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键单击一个功能时,我可以去喝咖啡,然后在它响应之前回来......

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

3 个答案:

答案 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)

使用项目资源过滤器对我帮助很大。 我从项目树文件夹中删除了我不想修改或提交索引的文件夹。

要创建新过滤器,只需右键单击项目,然后打开属性面板,然后到达资源 - >资源过滤器

http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.platform.doc.user/concepts/resourcefilters.htm

有时,如果项目源太大(例如:大约5GB),则需要使用过滤器,否则索引过程永远不会正确结束。

答案 2 :(得分:0)

Neon上还需要-Xss8g {@ 1}}以防止堆栈溢出。

另请考虑eclipse.ini

在Ubuntu 14.04上测试。