IDEA的CPU占用率高問題解決方案


打開監控

結果出乎我的意料,從上圖可以看到,JIT(即時編輯)占了大頭,這也解釋了為什么每當我在修改新的代碼文件的內容時 CPU 占用率飆升,因為 JIT Compiler 即時編譯將 class 文件編譯成本地機器代碼占用了大量的 CPU 資源導致的卡頓,這下子問題找到了,該研究解決辦法了。

解決方法

知道了是 JIT 的鍋之后,我們該思考怎么解決它,我在網上參考了一篇博客修改了 JVM 的配置,如下圖:

`# 堆棧設置

-Xms2048m
-Xmx4096m
-Xverify:none
-XX:+DisableExplicitGC
-XX:ReservedCodeCacheSize=720m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow

JIT 參數

設置用於編譯的編譯器線程數

-XX:CICompilerCount=2

開啟分層編譯

-XX:TieredStopAtLevel=1

控制最大數量嵌套調用內聯

-XX:MaxInlineLevel=3

即時編譯的東西(沒弄懂...)

-XX:Tier4MinInvocationThreshold=100000
-XX:Tier4InvocationThreshold=110000
-XX:Tier4CompileThreshold=120000
`

-XX:CICompilerCount

默認情況下,server JVM的線程數設置為2,clientJVM的線程數設置為1,如果使用分層編譯,則線程數將縮放為內核數

-XX:TieredStopAtLevel
開啟分層編譯

-XX:MaxInlineLevel
默認值為9,控制最大數量嵌套調用內聯。

重啟idea,好多了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM