一、jmap
1、查看java堆使用情况
jmap -heap pid
2、查看堆中对象数量、大小
jmap -histo pid>D:/a.log
class name 解读B代表byte
C代表char
D代表double
F代表float
I代表int
J代表long
Z代表boolean
前边有[代表数组,[I 就相当于int[]
对象用[L+类名表示
3、将内存使用情况输出到文件
jmap -dump:live,file=D:/dump.bin,format=b 7340
--live 代表还在生命周期内
二、jhat
1、查看堆文件
jhat -port 5000 D:/dump.bin
有时你dump出来的堆很大,在启动时会报堆空间不足的错误,可以使用如下参数:
jhat -J-Xmx512m <heap dump file>