> 文章列表 > JVM参数

JVM参数

JVM参数

在这里插入图片描述

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 否

参数

# 打印命令行参数。可以获取默认GC
java -XX:+PrintCommandLineFlags -version