利用jmap和jhat分析dump
-
jps
查询出jvm线程 pid -
创建快照文件
jmap -dump:live,file=e://a.hprof pid
; 它会在e盘生成a.hprof的快照文件,类型必须是hprof
jmap -dump:live,format=b,file=e://b.hprof 4076
使用format=b的二进制格式化,比不使用的文件小了18%左右,可以自己尝试下;
jhat [filePath]
读取相应的文件,然后使用oql语法分析打开localhost:7000,结果如下
里面很多对象,都可以pass,拉到最低部;
这是就是oql查询页面
select sizeof(o),o from [I o where sizeof(o)>5000
查询大于50K的对象对象
help里有简单的语法介绍
使用visualVm查看hprof文件
- 打开visualVm
JVisualVm
- 装入
- 分析
这个比jmap分析出来的强很多.不过9以后好像jVisualVm不是自带的工具.