Intellij Idea cpu 100% 卡顿 解决办法

配置文件位置
img

修改配置文件idea.vmoptions

具体参数配置

#堆栈设置
-Xms4096m
-Xmx4096m
-Xmn3072m
-XX:MetaspaceSize=1024m
-XX:MaxMetaspaceSize=1024m
-XX:+AlwaysPreTouch
-XX:InitialCodeCacheSize=1200m
-XX:ReservedCodeCacheSize=1200m
-XX:+UseCompressedOops
-Dfile.encoding=UTF-8

# 采用何种垃圾回收参数
-XX:+UseConcMarkSweepGC
-XX:ParallelGCThreads=4
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
# JIT 参数
-XX:CICompilerCount=2
-XX:TieredStopAtLevel=1
-XX:MaxInlineLevel=3
-XX:Tier4MinInvocationThreshold=100000
-XX:Tier4InvocationThreshold=110000
-XX:Tier4CompileThreshold=120000

-Dsun.io.useCanonPrefixCache=false
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-Djdk.attach.allowAttachSelf
-Xverify:none

-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof

配置后重新启动idea
其实大部分情况下 不是垃圾回收造成的cpu负载过高 而是由于JIT Compiler 及时编译将class文件编译成本地机器代码占用了大量的cpu资源导致的卡顿
具体请看下图

img

配置后重新启动idea发现垃圾回收只有一次或者两次

img

JIT compiler 占用了大量的cpu资源

配置文件中这部分是控制 JIT compiler

-XX:CICompilerCount=2
-XX:TieredStopAtLevel=1
-XX:MaxInlineLevel=3
-XX:Tier4MinInvocationThreshold=100000
-XX:Tier4InvocationThreshold=110000
-XX:Tier4CompileThreshold=120000

img

其中会看到Hotspot采用的 JIT compiler采用的是混合模式

java -XX:+PrintFlagsFinal -version | grep CompileThreshold

最后希望大家自己打开自己的jvisualVM来查看到底是什么导致了自己的idea卡顿的
顺便说一下
oracle-jdk 自带 jvisualVM
open-jdk 没有的jvisualVM需要自己下载

img

命令行输入jvisualvm来启动

具体请参考国外idea bug追踪他们的idea cpu 100% 讨论
https://youtrack.jetbrains.com/issue/IDEA-207243

关键的三个参数的说明

1、 -Xms 是最小启动内存参数

2、 -Xmx 是最大运行内存参数

3、-XX:ReservedCodeCacheSize 保留代码占用的内存容量参数

建议手动设置参数值
一、电脑运行内存为8G的建议

-server
-Xms512m
-Xmx1024m
-XX:ReservedCodeCacheSize=300m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow

二、电脑运行内存为16G的建议

-server
-Xms1024m
-Xmx2048m
-XX:ReservedCodeCacheSize=500m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow

注意:可能电脑配置跟性能都不一样,据实际情况而定!

链接:
https://www.jianshu.com/p/ac72a14afc24
https://blog.csdn.net/Genius_in_the_left/article/details/95397777

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值