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