「运行时数据区」常用参数汇总

👉 官方参数说明

堆空间

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)

-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:设置元空间最大可分配空间