IDEA的CPU占用率高问题解决方法

2年前 (2022) 程序员胖胖胖虎阿
381 0 0

前言:这段时间发现 IDEA 的 CPU 占用率猛涨,时不时就飙升到百分之7、80,使得敲代码的体验感十分不佳,在经过一番查找之后终于解决了问题,在此记录一下

IDEA的CPU占用率高问题解决方法

IDEA的CPU占用率高问题解决方法

问题定位

我们先定位一下为什么IDEA的CPU占用率会变高。

  • 电脑内存不足?
    这个问题我在19年也遇到过,那时候的 8G 内存属实不太能带的动 IDEA ,开了IDEA 后 CPU 基本上都是在疯狂跑,然后我换了内存条之后才好转了,但是这次明显不是,因为我换成 32G 的内存之后还是没有好转…
  • 安装的插件过多?
    这个是网上的说法,但是我其实没安装什么插件,所以也排除
  • 代码检查的问题?
    这个也是网上大佬的说法,但是我关闭了一部分不必要的代码检查之后,CPU 占用率也没有下来…

额,好像陷入了僵局,于是我打开监控,查看是哪个部分的 CPU 占用率高

打开监控
IDEA的CPU占用率高问题解决方法

监控内容
IDEA的CPU占用率高问题解决方法

结果出乎我的意料,从上图可以看到,JIT(即时编辑)占了大头,这也解释了为什么每当我在修改新的代码文件的内容时 CPU 占用率飙升,因为 JIT Compiler 即时编译将 class 文件编译成本地机器代码占用了大量的 CPU 资源导致的卡顿,这下子问题找到了,该研究解决办法了。

解决方法

知道了是 JIT 的锅之后,我们该思考怎么解决它,我在网上参考了一篇博客修改了 JVM 的配置,如下图:
IDEA的CPU占用率高问题解决方法

JVM 配置信息
IDEA的CPU占用率高问题解决方法
这里我参考了大佬对 JIT 部分的设置,不过大佬没有在博客说明这些参数的意思,我在这里说明一下:

# 堆栈设置

-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,控制最大数量嵌套调用内联。

修改后的 CPU 占用率,如下图:
IDEA的CPU占用率高问题解决方法
IDEA的CPU占用率高问题解决方法
可以看到 IDEA的 CPU 占用率显著下降。

参考博客:
intellij idea cpu占用率太大太满 运行速度太慢 使了五个解决方法最终成功
idea运行cpu100%配置

PS:可以到我的个人博客查看更多内容
个人博客地址:小关同学的博客

版权声明:程序员胖胖胖虎阿 发表于 2022年10月7日 下午2:48。
转载请注明:IDEA的CPU占用率高问题解决方法 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...