Eclipse CDT開發C++速度慢的解決方案
Eclipse/CDT速度慢,佔用記憶體大的問題的可用解決方案
今晚又折騰CDT幾個小時,差不多有點思路,就個人的體會歸納一下,說得不對之處,還請大家指正。我的環境是Eclipse3.2.2, CDT 3.1.2,
jdk 1.5.0.10,
CDT有很多效能/記憶體方面的陷阱,
(1)indexer。CDT的有些功能需要indexer(我也不知道是哪些功能需要它,反正有人這麼說)
CDT安裝後,預設indexer是開啟的,今天寫一個HELLO world的小程式,運行了差不多一分多鐘,
關掉方式:選擇具體的項目,右鍵->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++的開發,能夠在編程中感覺到詩一般的魅力。