👉 官方参数说明
jps
:查看当前运行中的进程
jinfo -flag SurvivorRatio <pid>
查看该进程的 SurvivorRatio 参数值
-XX:+PrintFlagsInitial
:查看所有参数的默认初始值
-XX:+PrintFlagsFinal
:查看所有参数的最终值 (可能会存在修改,不再是初始值)
-Xms
:初始堆空间内存 (默认为物理内存的 1/64)
-Xmx
:最大堆空间内存 (默认为物理内存的 1/4)
-Xmn
:设置新生代的大小 (初始值和最大值)
-XX:NewRatio
:配置新生代与老年代在堆结构的占比 (默认为 2;新生代 : 老年代 = 1 : 2)
-XX:SurvivorRatio
:设置新生代中 Eden 和 S0/S1 空间的比例 (默认为 8;Eden : S0 : S1 = 8 : 1 : 1)
-XX:MaxTenuringThreshold
:设置新生代垃圾的最大年龄 (默认为 15,最大也为 15 -> MarkWord 中只有 4 位存放对象 GC 年龄)
-XX:+PrintGCDetails
:输出详细的 GC 处理日志
-XX:+PrintGC
、-verbose:gc
:打印 GC 简要信息
-XX:HandlePromotionFailure
:是否设置空间分配担保 (JDK 7 之后该参数失效,默认为 true)
「老年代连续空间」> 「新生代对象总大小」or「历次晋升的平均大小」
就会进行 Minor GC,否则将进行 Full GC-XX:+DoEscapeAnalysis
:手动开启逃逸分析
-XX:+PrintEscapeAnalysis
:查看逃逸分析的结果
-XX:+EliminateAllocations
:开启标量替换
-XX:+PrintEliminateAllocations
:查看标量替换的情况
-XX:+EliminateLocks
:开启同步消除
JDK7 及以前
-XX:PermSize=size
:设置永久代初始分配空间。默认值为 20.75M
-XX:MaxPermSize=size
:设置永久代最大可分配空间。32 位机器默认值为 64M;64 位机器默认值为 82M
JDK8 及以后
-XX:MetaspaceSize=size
:设置元空间初始分配空间
-XX:MaxMetaspaceSize=size
:设置元空间最大可分配空间