Intellij Idea cpu 100% 卡顿 解决办法

配置文件位置


修改配置文件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资源导致的卡顿
具体请看下图

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

JIT compiler 占用了大量的cpu资源

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

-XX:CICompilerCount=2
-XX:TieredStopAtLevel=1
-XX:MaxInlineLevel=3
-XX:Tier4MinInvocationThreshold=100000
-XX:Tier4InvocationThreshold=110000
-XX:Tier4CompileThreshold=120000
其中会看到Hotspot采用的 JIT compiler采用的是混合模式
java -XX:+PrintFlagsFinal -version | grep CompileThreshold

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


命令行输入jvisualvm来启动

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 最近一个小学生的诗火了,全文如下:“天啊!地啊!同学和老师啊!谁能告诉我,何时秋游啊!我准备的酸奶过期了!我准备的...
    dg1240阅读 602评论 0 2
  • 穷没有根,富没有苗,也就是说人不能老穷,也不能老富,穷则思变,变则通,总有一天会富起来!一旦富起来,也不会永远富下...
    秋AldrichB果阅读 1,347评论 0 4
  • 阳光 阳光 在每一片绿叶上 跳着舞 我像巧克力一样 融化在秋日午后的空气里
    c46f828e0103阅读 213评论 0 5
  • 在重庆沙坪坝双碑,挂榜山下,嘉陵江畔,有一个著名的中国嘉陵集团,哎哎,提到“嘉陵”一词,斋主眼前立刻会浮现一个...
    张纲阅读 2,184评论 0 2