1 参数类型
1.1 标准参数
-help
-server -client
-version -showversion
-cp -classpath
1.2 X 参数
- 非标准化参数
- -Xint :解释执行
- -Xcomp :第一次使用就编译成本地代码
- -Xmixed :混合模式, JVM自己来决定是否编译成本地代码
- JDK8默认混合模式
1.3 XX 参数
- 非标转化参数,相对不稳定,主要用于JVM调优和Debug
Boolean类型
- 格式:
-XX:[±]表示启用或者禁用name属性,比如:
-XX:+ UseConcMarkSweepGC
-XX:+UseG1GC
非 Boolean类型
- 格式:
-XX: <name> = <value>
表示name属性的值是value
比如:-XX:MaxGCPauseMilis=500
XX:GCTimeRatio=19
注意,-Xmx -Xms
不是X参数,而是XX参数
-Xms等价于-XX:InitialHeapSize
-Xmx等价于-XX:MaxHeapSize
2 运行时参数
-XX:+ PrintFlagsInitial
-XX:+ PrintFlagsFinal
-XX: +UnlockExperimentalVMOptions 解锁实验参数
-XX: + UnlockDiagnosticVMOptions 解锁诊断参数
-XX:+ PrintCommandLineFlags 打印命令行参数
查看XX选项的值
- -XX:+PrintCommandLineFlags
- -XX:+PrintFlagsInitial -XX:+PrintFlagsFinal
- =表示默认值
- :=被用户或者JVM修改后的值
jps
jinfo
- 查看最大内存
jinfo -flag MaxHeapSize 1430 -XX:MaxHeapSize=1073741824
- 查看垃圾收集器
➜ ~ jinfo -flag UseConcMarkSweepGC 1430 -XX:-UseConcMarkSweepGC
- 查看回收次数阈值
➜ ~ jinfo -flag MaxTenuringThreshold 58064 -XX:MaxTenuringThreshold=15
3 jstat
查看JVM统计信息
3.1 类装载
3.2 GC
-gc, -gcutil, -gccause, -gcnew, -gcold
-gc输出结果
S0C、S1C、SOU、 S1∪ : S0和S1的总量与使用量
EC、EU : Eden区总量与使用量
OC、OU : Old区总量与使用量
MC、MU : Metaspace区总量与使用量
CCSC、CCSU :压缩类空间总量与使用量
YGC、YGCT : YoungGC的次数与时间
FGC、FGCT : FulIGC的次数.与时间
GCT :总的GC时间
JIT 编译
- -compiler
- -printcompilation