IDEA分析CPU

Idea 自带分析工具地址:Help->Diagnostic tools-> Activity Monitor…

可以看到JIT编译占用比较高的CPU

JIT编译导致CPU暴涨

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

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

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

IDEA JVM配置

IDEA 分两个配置文件,一个在app,一个在用户下。首先加载的app下的配置文件

1
2
3
4
# app
/Applications/IntelliJ IDEA.app/Contents/bin
# 用户
~/Library/Application Support/JetBrains/IntelliJIdea2022.1

idea JVM配置信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#堆栈设置
-Xms6144m
-Xmx6144m
-Xmn5125m
-XX:MetaspaceSize=1024m
-XX:MaxMetaspaceSize=1024m
-XX:+AlwaysPreTouch
-XX:InitialCodeCacheSize=1200m
-XX:ReservedCodeCacheSize=1200m
-XX:+UseCompressedOops
-Dfile.encoding=UTF-8

# 采用何种垃圾回收参数
-XX:+IgnoreUnrecognizedVMOptions
-XX:+UseG1GC
-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