杜蕾斯2017最新广告:Eclipse/CDT速度慢,占用内存大的问题的可用解决方案
来源:百度文库 编辑:偶看新闻 时间:2024/04/28 20:22:17
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有很多性能/内存方面的陷阱,
(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++的开发,能够在编程中感觉到诗一般的魅力。
内存占用很大,电脑运行速度慢
卡巴斯基降低机器速度慢是占用内存还是CPU?
网速为什么越来越慢,内存占用为什么越来越大!???
eclipse中用 cdt 3.0 怎么用啊
电脑速度很慢,system占用绝大资源,请求高手帮忙
卡巴斯基占用内存大吗
asf占用内存大吗
在相同的内存频率下,是不是内存越大,速度越慢?
电脑时间用长了,内存就会占用很多,机子速度边慢了,怎样才能释放内存空间,?
我的电脑开机速度很慢,又没有粘上病毒.占用内存也不是很多,这是什么原因呢???
nod32这个防火墙占用内存大吗?
xp系统占用内存大吗?
IE浏览器占用内存非常大是什么原因
视频聊天为什么占用内存那么大
为什么卡巴基占用内存这么大?
windows防火墙占用的内存大不大?
网络速度慢 数据传输大
窗口打开多个网站比只打开一个网站速度要慢,是因为打开多个网站占用内存要比只打开一个网站占用内存多吗
[求助]打开浏览器,资源占用100%,速度特别慢
QQ占用CPU7-80%速度很慢,怎样解决
为什么我的电脑内存有768MB,前几天系统很快,占用CPU空间少,后来至今速度慢,系统CPU空间也常为100%?
备份文件后,会占用内存影响电脑的速度吗?
如何减少内存的占用保证电脑的运行速度
迅雷、周迅,哪个比较占用内存?哪个下载速度快?