2012-03-05 25 views
17

我正在使用“vi”和“emacs”编写的一些传统C++代码,我正在尝试构建一个eclipse CDT安装程序来维护它(在Linux上)。我一直面临的两个主要问题是索引需要很长的时间(超过4小时),即使一旦完成,eclipse几乎没有响应。什么是大C++项目推荐Eclipse CDT配置(索引器需要永久)

代码库是在 “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 

大约有200 “模块” 下/系统/ *和周围50在/ server/Authentication/*下。 也有一个令人惊讶的曲折使系统具有20年值得的人写化妆代码谁想要showoff他们做的能力:-)

我已经试过两种方法至今

1)两个Eclipse的CDT项目,即/系统和/身份验证

2)一个eclipse cdt项目每个“模块”结尾+200模块。我甚至计算了模块之间的依赖关系。

在这两种方法中,索引都需要很长时间。在方法1)我遇到了不解决的依赖问题。随着接近2)日蚀是几乎没有反应,当我按Ctrl +点击一个功能,我可以去喝杯咖啡,回来它响应之前...

有人在那里有与像这些大项目的经验?你有什么建议?

+0

您的'Windows->首选项 - > C/C++ - > Indexer'设置为“快速(推荐)”还是“全部”索引器?它应该是“快”。 – iammilind 2012-03-05 10:48:28

+1

@iammilind我似乎没有这个选项(日食靛蓝) – krico 2012-03-05 10:58:49

+1

@iammilind似乎在较新的版本,该选项不可用 – krico 2012-03-07 14:28:31

回答

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的内存。

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

+0

这当然是很好的建议。我没有提到这一点,但我已经改变了我的-Xmx和Indexer Cache Limits。我想没有其他的事情要做了:-( – krico 2012-03-11 13:41:51

+0

好的,我没有更多的建议,尽管没有这些设置,我的项目索引需要很长时间,正如你所描述的那样。我的项目也很大。 – ks1322 2012-03-13 08:11:22

1

使用项目资源滤波器帮了我很多。 我从我不想任何修改或提交到索引项目树删除的文件夹。

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

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

有时,如果你的项目源过大(例如:约5GB),你需要使用过滤器,否则该索引过程从来没有正确结束。

0

-Xss8g on eclipse.ini在Neon上也需要防止堆栈溢出。

还可以考虑ulimit -Sv unlimited

在Ubuntu 14.04上测试。