親測有效:CPU 從300%降到60%
配置文件位置
idea -> Help -> Edit Custom VM options
具體參數配置
#堆棧設置 -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資源導致的卡頓
配置文件中這部分是控制 JIT compiler
-XX:CICompilerCount=2 -XX:TieredStopAtLevel=1 -XX:MaxInlineLevel=3 -XX:Tier4MinInvocationThreshold=100000 -XX:Tier4InvocationThreshold=110000 -XX:Tier4CompileThreshold=120000
最后希望大家自己打開自己的jvisualVM來查看到底是什么導致了自己的idea卡頓的
順便說一下
oracle-jdk 自帶 jvisualVM
open-jdk 沒有的jvisualVM需要自己下載
順便說一下
oracle-jdk 自帶 jvisualVM
open-jdk 沒有的jvisualVM需要自己下載
