0%

JVM调试基础

标准参数

-help

-version

X参数

X参数是非标准化参数

-Xint: 解释执行

-Xcomp: 第一次使用就编译成本地代码

-Xmixed: 混合模式,JVM自己来决定是否编译成本地代码

java -Xcomp -version

XX参数

XX参数也是非标准化参数

有两种类型

Boolean: -XX:[+-]启动或禁用name属性

-XX:+UseConcMarkSweepGC

-XX:+UseG1GC

非Boolean类型

-XX:=

-XX:MaxGCPauseMillis=500

-XX:GCTimeRatio=19

-Xmx -Xms

这是XX参数

-Xms = -XX:InitialHeapSize

-Xmx = -XX:MaxHeapSize

1
2
jinfo -flag MaxHeapSize 36247
-XX:MaxHeapSize=4200595456

-Xss = -XX:ThreadStackSize

-XX:+PrintFlagsInitial

-XX:+PrintFlagFinal

=默认值 := 修改过的值

jps -l参数代表:full package name

1
2
3
# jps -l
42826 sun.tools.jps.Jps
102271 org.elasticsearch.bootstrap.Elasticsearch

jstat查看JVM统计信息

jstat -class

-gc, -compiler

S0C, S1C, S0U, S1U: C - 总量 U - 使用量

EC, EU, Eden

OC, OU, Old区

MC, MU: Metaspace区

CCSC, CCSU, 压缩类空间总量/使用量

YGC, YGCT: YoungGC的次数与时间

FGC, FGCT: FullGC次数和时间

GCT: 总的GC时间

导出内存映像文件

内存溢出自动导出,在VM arguments里面写入如下参数

-XX:+HeapDumpOnOutOfMemoryError

-XX:HeapDumpPath=./

使用jmap命令手动导出

jmap -help

jmap -dump:format=b,file=./heap.hprofJV

MAT

http://www.eclipse.org/mat