> 文章列表 > 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