GC参数
年轻代 老年代 参数 Serial Serial Old -XX:+UseSerialGC
Parallel Scavenge Parallel Old -XX:+UseParallelGC -XX:+UseParallelOldGC
Parallel New CMS -XX:+UseParNewGC -XX:+UseConcMarkSweepGC
G1 G1 -XX:+UseG1GC
ZGC ZGC -XX:+UseZGC
jdk 默认GC 新生代 老年代 默认参数 jdk8 Parallel Scavenge + Parallel Old Parallel Scavenge Parallel Old -XX:+UseParallelGC
jdk11 G1 G1 G1 -XX:+UseG1GC
jdk17 G1 G1 G1 -XX:+UseG1GC
jdk21 ``
参数 代表GC -XX:-UseSerialGC Serial + Serial Old -XX:-UseParNewGC ParNew + Serial Old -XX:-UseParallelGC Parallel Scavenge + Parallel Old -XX:-UseParallelOldGC Parallel Scavenge + Parallel Old -XX:-UseConcMarkSweepGC CMS + ParNew -XX:-UseG1GC G1 -XX:+UseZGC ZGC
CMS相关参数
G1相关参数
ZGC相关参数
Runtime参数
PC(寄存器)
虚拟机栈
LV(局部变量表), OS(操作数栈), DL(动态链接), RA(返回地址)
分类 参数 默认 作用 建议 堆区 -Xss2m 512KB 线程可用最大虚拟机栈大小,决定了函数调用的最大深度 否
堆区
新生代(eden(TLAB), from/to), 老年代
分类 参数 默认 作用 建议 堆空间大小 -Xms10m 物理内存大小/64 min堆大小 是 堆空间大小 -Xmx10m 物理内存大小/4 max堆大小 是 新生代大小 -Xmn10m 新生代内存大小,和-XX:NewRatio=2一起设置,这个参数失效 否 老年代:新生代 -XX:NewRatio=2 2 老年代:新生代=2 否 eden:survivor -XX:SurvivorRatio=8 自适应 eden:s0:s1=8:1:1 否 新生代自适应 -XX:+UseAdaptiveSizePolicy 开启 +号开启自适应,-号关闭自适应 是。大流量、低延迟系统 建议关闭 年龄计数器 -XX:MaxTenuringThreshold=15 15 年龄计数器,控制survivor区到老年代 否 -XX:+HandlePromotionFailure 开启 开启非安全转移 否 TLAB启用 -XX:+UseTLAB 开启 +号开启TLAB 否 TLAB/Eden -XX:TLABWasteTargetPercent Eden的1% TLAB占用Eden百分比 否 参数值 -XX:+PrintFlagsInitial 所有参数的默认初始值 否 参数值 -XX:+PrintFlagsFinal 所有参数的最终值,赋值值 否 GC -XX:+PrintGCDetails 打印GC细节,常用 否 GC -XX:+PrintGC 打印GC简略信息 否 GC -verbose:gc 打印GC简略信息 否 逃逸分析 -XX:+DoEscapeAnalysis jdk6u23=+默认开启 逃逸分析 否 逃逸分析 -XX:+PrintEscapeAnalysis 打印逃逸分析筛选结果 否 标量替换 -XX:+EliminateAllocations 开启 标量替换 否 JVM运行模式 -server 64位jvm默认server模式 server模式,server模式下才有逃逸分析 否
方法区
永久代(jdk7-)/元空间(jdk8=+)
分类 参数 作用 建议 jdk7=-,永久代 -XX:PermSize=100m
初始永久代大小 否 jdk7=-,永久代 -XX:MaxPermSize=100m
max永久代大小 否 jdk8=+,元空间 -XX:MetaspaceSize=100m
初始元空间大小,警戒线,设置较大的值防止空间不够频繁FGC 是 jdk8=+,元空间 -XX:MaxMetaspaceSize=100m
最大元空间大小,默认-1 否
辅助参数
java -XX:+PrintCommandLineFlags -version