jmap jhat
(JDK8)
将JVM堆内容信息输入到文件中
jmap -dump:format=b,file=file1 2819 //将JVM堆信息保存到当前用户目录下的file1文件中
jhat file1 //使用该命令,会开启一个http服务,通过7000端口访问可以查看详细信息,访问http://ip:7000
jmap -head PID //查看某一进程堆内存分配信息
jmap -histo[:live] PID //查看进程中每个class的实例数目、内存占用、类全名信息,JVM的内部类名字开头会加 "*",live参数表示只统计活的对象数量。
#instance 是对象的实例个数
#bytes 是总占用的字节数
class name 对应的就是 Class 文件里的 class 的标识
B 代表 byte
C 代表 char
D 代表 double
F 代表 float
I 代表 int
J 代表 long
Z 代表 boolean
前边有 [ 代表数组, [I 就相当于 int[]
对象用 [L+ 类名表示