跨平臺IDE集成開發(fā)環(huán)境Clion入門教程(八):性能優(yōu)化技巧
CLion是一款專為開發(fā)C及C++所設(shè)計的跨平臺IDE。它是以IntelliJ為基礎(chǔ)設(shè)計的,包含了許多智能功能來提高開發(fā)人員的生產(chǎn)力。這種強大的IDE幫助開發(fā)人員在Linux、OS X和Windows上來開發(fā)C/C++,同時它還使用智能編輯器來提高代碼質(zhì)量、自動代碼重構(gòu)并且深度整合CMake編譯系統(tǒng),從而提高開發(fā)人員的工作效率。
CLion現(xiàn)已更新至2019.2版本,新版本為嵌入式開發(fā)人員提供了更多幫助,并提高了幾個重要方面的一般調(diào)試能力。編輯器現(xiàn)在具有參數(shù)名稱提示,并且它具有改進的代碼分析功能,為“未使用的包含”帶回更新的檢查。點擊查看更新詳情!
增加內(nèi)存堆
要檢查性能下降是否是由于堆內(nèi)存不足引起的,請在“設(shè)置/首選項” |“設(shè)置”中啟用“ 顯示內(nèi)存指示符”選項。外觀與行為| 外觀。默認(rèn)情況下,JVM和Clangd內(nèi)存指示器都將顯示在右下角:
要增加內(nèi)存堆,請修改相應(yīng)的JVM選項-Xmx:
轉(zhuǎn)到幫助| 編輯自定義VM選項 -此操作將在IDE config目錄中創(chuàng)建.vmoptions文件的副本,然后在編輯器中將其打開。
設(shè)置-Xmx更高的值。例如-Xmx4096m對于4 GB的值,而不是默認(rèn)的2 GB。
重新啟動CLion。
如果可用的堆內(nèi)存量小于最大堆大小的5%,CLion也會警告您:
單擊配置以-Xmx在“ 內(nèi)存設(shè)置”對話框中進行編輯:
動態(tài)代碼分析是CLion中性能最消耗的過程之一。要減輕它的負(fù)擔(dān),請在“設(shè)置/首選項” |“設(shè)置”中縮短檢查清單。
特別是,請考慮禁用“ 數(shù)據(jù)流分析”組,然后禁用“ 常規(guī)”??珊喕穆暶鳈z查:
您將始終能夠使用“ 代碼| 在不影響編輯器的情況下,檢查Code命令并在單獨的工具窗口中瀏覽結(jié)果。另外,您可以通過設(shè)置“ 提交前”選項來推遲代碼分析(以及即時重構(gòu))直到提交。
要更改當(dāng)前打開文件的代碼分析級別,請單擊狀態(tài)欄上的Hector圖標(biāo)或運行Code | 配置當(dāng)前文件分析 Ctrl+Shift+Alt+H:
將滑塊移到可用位置之一:
沒有一個可以完全關(guān)閉突出顯示;
語法,只顯示語法問題;
檢查(默認(rèn))以顯示語法問題和檢查問題。
作為單獨配置單個檢查或文件的另一種選擇,請嘗試“ 省電模式”。它禁用了整個IDE的所有檢查和其他耗時的后臺任務(wù)。
要啟用節(jié)電模式,請在Hector彈出窗口中設(shè)置相應(yīng)的復(fù)選框(請參見上面的屏幕截圖),或調(diào)用File | 省電模式。
CLion包含一個互補的基于Clangd的語言引擎,默認(rèn)情況下啟用。當(dāng)前,它可用于錯誤/警告注釋,某些導(dǎo)航任務(wù),通過ClangFormat進行代碼格式化以及帶有快速修復(fù)的代碼突出顯示。
在大多數(shù)情況下,基于Clangd的引擎比內(nèi)置引擎的運行速度更快(有時會提供更準(zhǔn)確的結(jié)果)。但是,并非所有操作都使用它。例如,Clangd提供了快速修復(fù)的位置,而修復(fù)本身是由CLion自己的引擎執(zhí)行的?;蛘?,“ 查找用法”使用Clangd在編輯器中當(dāng)前打開的文件以及CLion自己的引擎中搜索所有其他用法。
我們建議您在調(diào)查性能問題時考慮到Clangd引擎的特點。使用設(shè)置/首選項| 語言和框架| C / C ++ | 嘗試試驗引擎設(shè)置,看看它們是否影響某些任務(wù)的性能。
默認(rèn)情況下,CLion索引CMakeLists.txt中列出的所有目錄(源和include_directories路徑)以進行正確解析。同時,您的項目可能包含帶有二進制文件,日志或構(gòu)建構(gòu)件的文件夾,這不會影響CLion的代碼洞察力。同樣,某些文件夾的索引由于其大小或位置而可能過于昂貴。因此,手動排除此類文件夾是合理的:在項目樹中的目錄上單擊鼠標(biāo)右鍵,然后選擇“將目錄標(biāo)記為”。
由于CLion的排除文件中的符號仍未完成,因此以下功能不適用于此類文件:代碼完成和自動導(dǎo)入(include_directories在CMakeLists.txt中用排除目錄標(biāo)記的情況除外),代碼生成,查找在路徑中(當(dāng)前打開文件的范圍除外),導(dǎo)航和重構(gòu)。
從索引中消除日志或生成的數(shù)據(jù)之類的文件的另一種方法是在“設(shè)置” /“首選項” |“設(shè)置”中按文件類型排除它們 編輯器 檔案類型:
解析文件的范圍由加載的CMake腳本確定。因此,如果您的項目被分成幾個子目錄,每個子目錄中都有獨立的CMakeLists.txt,則可以分別加載較小的子項目(為此,請在sub-CMakeLists.txt上運行Load CMake project):
當(dāng)您只需要探索大項目的一部分時,另一種替代方法是創(chuàng)建一個編譯數(shù)據(jù)庫,將其縮減為感興趣的部分,然后在CLion中作為項目打開。
避免使用_CLION_IDE__macro進行繁瑣的解析
復(fù)雜的預(yù)處理器宏的解析過程中可能會發(fā)生IDE凍結(jié)。要從代碼中消除此類有問題的定義,請使用__CLION_IDE__macro將其替換為一些虛擬的定義:
該macro僅影響解析,并且在生成或運行代碼時未定義。
=====================================================
更多關(guān)于CLion的教程、資源敬請關(guān)注我們即將推出的后續(xù)教程哦~
想要購買Clion正版授權(quán)的朋友歡迎咨詢慧都官方客服。
關(guān)注下方微信公眾號嗎,及時獲取產(chǎn)品最新消息和最新資訊