idea java cpu100_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 java cpu100_Intellij Idea cpu 100% 卡顿 解决办法)