美文网首页
Intellij Idea cpu 100% 卡顿 解决办法

Intellij Idea cpu 100% 卡顿 解决办法

作者: 7ee4c95bcc68 | 来源:发表于2019-09-25 13:28 被阅读0次

    配置文件位置


    修改配置文件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

    相关文章

      网友评论

          本文标题:Intellij Idea cpu 100% 卡顿 解决办法

          本文链接:https://www.haomeiwen.com/subject/urfpuctx.html