• <menu id="w2i4a"></menu>
  • logo Clion入門教程

    文檔首頁>>Clion入門教程>>跨平臺IDE集成開發(fā)環(huán)境Clion入門教程(八):性能優(yōu)化技巧

    跨平臺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ù)名稱提示,并且它具有改進的代碼分析功能,為“未使用的包含”帶回更新的檢查。點擊查看更新詳情!

    點擊下載Clion最新試用版

    增加內(nèi)存堆

    啟用內(nèi)存指示燈

    • 要檢查性能下降是否是由于堆內(nèi)存不足引起的,請在“設(shè)置/首選項” |“設(shè)置”中啟用“ 顯示內(nèi)存指示符”選項。外觀與行為| 外觀。默認(rèn)情況下,JVM和Clangd內(nèi)存指示器都將顯示在右下角:

    跨平臺IDE集成開發(fā)環(huán)境Clion入門教程(八):性能優(yōu)化技巧

    調(diào)整-Xmx

    要增加內(nèi)存堆,請修改相應(yīng)的JVM選項-Xmx:

    1. 轉(zhuǎn)到幫助| 編輯自定義VM選項 -此操作將在IDE config目錄中創(chuàng)建.vmoptions文件的副本,然后在編輯器中將其打開。

    2. 設(shè)置-Xmx更高的值。例如-Xmx4096m對于4 GB的值,而不是默認(rèn)的2 GB。

    3. 重新啟動CLion。

    如果可用的堆內(nèi)存量小于最大堆大小的5%,CLion也會警告您:

    跨平臺IDE集成開發(fā)環(huán)境Clion入門教程(八):性能優(yōu)化技巧

    單擊配置以-Xmx在“ 內(nèi)存設(shè)置”對話框中進行編輯:

    跨平臺IDE集成開發(fā)環(huán)境Clion入門教程(八):性能優(yōu)化技巧

    加快代碼分析

    過濾器的檢查清單

    動態(tài)代碼分析是CLion中性能最消耗的過程之一。要減輕它的負(fù)擔(dān),請在“設(shè)置/首選項” |“設(shè)置”中縮短檢查清單。

    特別是,請考慮禁用“ 數(shù)據(jù)流分析”組,然后禁用“ 常規(guī)”??珊喕穆暶鳈z查:

    跨平臺IDE集成開發(fā)環(huán)境Clion入門教程(八):性能優(yōu)化技巧

    您將始終能夠使用“ 代碼| 在不影響編輯器的情況下,檢查Code命令并在單獨的工具窗口中瀏覽結(jié)果。另外,您可以通過設(shè)置“ 提交前”選項來推遲代碼分析(以及即時重構(gòu))直到提交。

    對于文件調(diào)分析

    要更改當(dāng)前打開文件的代碼分析級別,請單擊狀態(tài)欄上的Hector圖標(biāo)Hector圖標(biāo)或運行Code | 配置當(dāng)前文件分析 Ctrl+Shift+Alt+H:

    跨平臺IDE集成開發(fā)環(huán)境Clion入門教程(八):性能優(yōu)化技巧

    將滑塊移到可用位置之一:

    • 沒有一個可以完全關(guān)閉突出顯示;

    • 語法,只顯示語法問題;

    • 檢查(默認(rèn))以顯示語法問題和檢查問題。

    切換省電模式

    作為單獨配置單個檢查或文件的另一種選擇,請嘗試“ 省電模式”。它禁用了整個IDE的所有檢查和其他耗時的后臺任務(wù)。

    要啟用節(jié)電模式,請在Hector彈出窗口中設(shè)置相應(yīng)的復(fù)選框(請參見上面的屏幕截圖),或調(diào)用File | 省電模式。

    檢查基于Clangd引擎

    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)記為”。

    跨平臺IDE集成開發(fā)環(huán)境Clion入門教程(八):性能優(yōu)化技巧

    由于CLion的排除文件中的符號仍未完成,因此以下功能不適用于此類文件:代碼完成和自動導(dǎo)入(include_directories在CMakeLists.txt中用排除目錄標(biāo)記的情況除外),代碼生成,查找在路徑中(當(dāng)前打開文件的范圍除外),導(dǎo)航和重構(gòu)。

    從索引中消除日志或生成的數(shù)據(jù)之類的文件的另一種方法是在“設(shè)置” /“首選項” |“設(shè)置”中按文件類型排除它們 編輯器 檔案類型:

    跨平臺IDE集成開發(fā)環(huán)境Clion入門教程(八):性能優(yōu)化技巧

    較小的CMake子項目的工作

    解析文件的范圍由加載的CMake腳本確定。因此,如果您的項目被分成幾個子目錄,每個子目錄中都有獨立的CMakeLists.txt,則可以分別加載較小的子項目(為此,請在sub-CMakeLists.txt上運行Load CMake project):

    跨平臺IDE集成開發(fā)環(huán)境Clion入門教程(八):性能優(yōu)化技巧

    當(dāng)您只需要探索大項目的一部分時,另一種替代方法是創(chuàng)建一個編譯數(shù)據(jù)庫,將其縮減為感興趣的部分,然后在CLion中作為項目打開。

    避免使用_CLION_IDE__macro進行繁瑣的解析

    復(fù)雜的預(yù)處理器宏的解析過程中可能會發(fā)生IDE凍結(jié)。要從代碼中消除此類有問題的定義,請使用__CLION_IDE__macro將其替換為一些虛擬的定義:

    跨平臺IDE集成開發(fā)環(huán)境Clion入門教程(八):性能優(yōu)化技巧

    該macro僅影響解析,并且在生成或運行代碼時未定義。

    =====================================================

     更多關(guān)于CLion的教程、資源敬請關(guān)注我們即將推出的后續(xù)教程哦~

    想要購買Clion正版授權(quán)的朋友歡迎咨詢慧都官方客服。

    關(guān)注下方微信公眾號嗎,及時獲取產(chǎn)品最新消息和最新資訊

    圖片2.jpg

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();