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