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

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

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

在这里插入图片描述

问题定位

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

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

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

打开监控
在这里插入图片描述

监控内容
在这里插入图片描述

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

解决方法

知道了是 JIT 的锅之后,我们该思考怎么解决它,我在网上参考了一篇博客修改了 JVM 的配置,如下图:
在这里插入图片描述

JVM 配置信息
在这里插入图片描述
这里我参考了大佬对 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 占用率显著下降。

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

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

  • 36
    点赞
  • 116
    收藏
    觉得还不错? 一键收藏
  • 25
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值