Eclipse/CDT速度慢,占用内存大的问题的可用解决方案 - 二氧化鬼的专栏 - CS...
来源:百度文库 编辑:神马文学网 时间:2024/04/25 07:36:01
Eclipse/CDT速度慢,占用内存大的问题的可用解决方案
今晚又折腾CDT几个小时,差不多有点思路,就个人的体会归纳一下,说得不对之处,还请大家指正。我的环境是Eclipse3.1.1, CDT 3.0.1, jdk 1.5.0.06, linux fc4, gcc 4.0。别的环境没试过。
CDT有很多性能/内存方面的陷阱,
(1)indexer。CDT的有些功能需要indexer(我也不知道是哪些功能需要它,反正有人这么说),我做过试验,一个500多个cpp文件的项目的full indexer大约需要1个小时。CDT安装后,默认indexer是打开的。如果你只写小程序,可以不管它。如果要写中,大型开发,最好关掉它。关掉方式:选择具体的项目,右键->properties->C/C++ Indexer,选择No Indexer。或者一安装CDT插件,就在Windows->Preferences->C/C++->Indexer中,选择No Indexer。
(2)CDT默认有个选项"Follow #include's when parsing working copies"是选中的,当你打开一个源文件时,该文件include的所有文件它都要解析一遍。影响了速度。关掉这个选项后,CDT开发就和java开发速度上感觉不出来差别了。关掉方法:Windows->Preferences->C/C++->去掉"Follow......" 那项。
(3)关掉(2)中所说的那个选项可能会影响到smart insert,也就是自动提示功能。CDT(至少在我的环境下)这里有一个巨大无比的Bug,就是对include文件的解析经常出现问题。如果选中(2)中所说的那个选项,许多文件的解析不完整(从右边outline那里可以发现),不知道它怎么解析的,反正usr/include中许多头文件都解析不成功。单是解析不成功还好啊,问题是,一旦你编辑include这些文件的源文件,一旦你输入了.,->,或::,哈哈哈哈,等等吧,至少5分钟才会出结果,然后你的内存耗用会增加100M以上,如果再打一个这三个东东,再次等待,再次内存泄漏。google上有人问,cdt咋占我1G的内存呢?选中(2)那个选项还有一个问题,就是泛型解析不出来。关掉(2)中的那个选项,会发现,outline中源文件的解析完全正确。不过,内存泄漏还是会出现,这时需要关掉Auto activation一项。关掉后就没问题了,只是不能自动提示/完成成员项了。关掉方法:Windows->Preferences-> C/C++->Editor->Code Assist,把Auto activation下面3个框中的勾去掉。
这样性能表现差不多就和JDT差不多了。代价是不能使用自动提示/完成这一现代IDE的基本功能。但是,和Linux环境下其它IDE相比, Eclipse/CDT在界面,易用性方面要强太多。例如UI的人性化,代码阅读,代码模板,与SVN/CVS的集成,这时偶喜欢CDT的几点。
最后来点煽情的:
Eclipse书商有一句话:Eclipse颠倒Java众生。其实,何止Java众生,连不成熟的CDT都迷倒了许多人。象偶这种以前用. net/C#,同时极度讨厌C++的人,便因为eclipse及其易用性上的设计,还有相关的文化而开始喜欢上了Java和C++的开发,能够在编程中感觉到诗一般的魅力。
今晚又折腾CDT几个小时,差不多有点思路,就个人的体会归纳一下,说得不对之处,还请大家指正。我的环境是Eclipse3.1.1, CDT 3.0.1, jdk 1.5.0.06, linux fc4, gcc 4.0。别的环境没试过。
CDT有很多性能/内存方面的陷阱,
(1)indexer。CDT的有些功能需要indexer(我也不知道是哪些功能需要它,反正有人这么说),我做过试验,一个500多个cpp文件的项目的full indexer大约需要1个小时。CDT安装后,默认indexer是打开的。如果你只写小程序,可以不管它。如果要写中,大型开发,最好关掉它。关掉方式:选择具体的项目,右键->properties->C/C++ Indexer,选择No Indexer。或者一安装CDT插件,就在Windows->Preferences->C/C++->Indexer中,选择No Indexer。
(2)CDT默认有个选项"Follow #include's when parsing working copies"是选中的,当你打开一个源文件时,该文件include的所有文件它都要解析一遍。影响了速度。关掉这个选项后,CDT开发就和java开发速度上感觉不出来差别了。关掉方法:Windows->Preferences->C/C++->去掉"Follow......" 那项。
(3)关掉(2)中所说的那个选项可能会影响到smart insert,也就是自动提示功能。CDT(至少在我的环境下)这里有一个巨大无比的Bug,就是对include文件的解析经常出现问题。如果选中(2)中所说的那个选项,许多文件的解析不完整(从右边outline那里可以发现),不知道它怎么解析的,反正usr/include中许多头文件都解析不成功。单是解析不成功还好啊,问题是,一旦你编辑include这些文件的源文件,一旦你输入了.,->,或::,哈哈哈哈,等等吧,至少5分钟才会出结果,然后你的内存耗用会增加100M以上,如果再打一个这三个东东,再次等待,再次内存泄漏。google上有人问,cdt咋占我1G的内存呢?选中(2)那个选项还有一个问题,就是泛型解析不出来。关掉(2)中的那个选项,会发现,outline中源文件的解析完全正确。不过,内存泄漏还是会出现,这时需要关掉Auto activation一项。关掉后就没问题了,只是不能自动提示/完成成员项了。关掉方法:Windows->Preferences-> C/C++->Editor->Code Assist,把Auto activation下面3个框中的勾去掉。
这样性能表现差不多就和JDT差不多了。代价是不能使用自动提示/完成这一现代IDE的基本功能。但是,和Linux环境下其它IDE相比, Eclipse/CDT在界面,易用性方面要强太多。例如UI的人性化,代码阅读,代码模板,与SVN/CVS的集成,这时偶喜欢CDT的几点。
最后来点煽情的:
Eclipse书商有一句话:Eclipse颠倒Java众生。其实,何止Java众生,连不成熟的CDT都迷倒了许多人。象偶这种以前用. net/C#,同时极度讨厌C++的人,便因为eclipse及其易用性上的设计,还有相关的文化而开始喜欢上了Java和C++的开发,能够在编程中感觉到诗一般的魅力。
Eclipse/CDT速度慢,占用内存大的问题的可用解决方案 - 二氧化鬼的专栏 - CS...
Eclipse/CDT速度慢,占用内存大的问题的可用解决方案
备案网站打开速度慢的解决方案
Eclipse的内存优化与内存不足问题
eclipse cdt MinGW 配置WINDOWS下的C/C++
Sql server不断增加的内存占用
迅雷占用几百M内存的解决方法 -
迅雷占用几百M内存的解决方法
迅雷占用几百M内存的解决方法
如何清除占用内存的文件
IEXPLORE.EXE大量占用内存的解决方法
10个可以对Firefox内存占用及速度进行优化的方法 - 软件之家--电脑书籍、应用技巧...
Eclipse CDT
电脑速度变慢的原因及处理方法 - ydshang的专栏 - CSDN博客
电脑速度慢的原因
C/C++编译的程序占用内存的划分
关于内存不能READ的解决方案
内存不能为read的解决方案
巧设参数 改善Firefox的内存占用
揭穿号称内存占用极低软件的诡计(ZT)
让Firefox最小化时释放占用的内存
巧设参数 改善Firefox的内存占用
揭穿号称内存占用极低软件的诡计(ZT)
杀毒软件的内存占用与卡机详解