一、jmap
1、jmap生成堆转储文件
一般我习惯使用 jmap -dump:live,format=b,file=xxx.hprof 2657(此处为pid)。 该命令会触发full gc。
生成的文件,传输到windows后,可以使用 eclipse 的mat进行分析,也可以使用 visualvm 来打开,可以看到各个类的实例的百分比,快速找出堆中最占内存的对象。
用eclipse mat进行解析:
2、mat进行分析
根据class查询对象:
在select中查询对象的属性 :
2、jmap的histo
jmap -F -histo 176344 > jstat176344.txt 即可。效果如下,可快速看出最占内存的对象的类型:
参考: