利用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不是自带的工具.
本文介绍如何使用jmap和jhat工具分析Java应用的内存状况。通过jps获取JVM进程PID,利用jmap创建hprof格式的内存快照,对比不同格式的快照大小差异。借助jhat解析快照文件,使用OQL查询语言筛选特定对象,如超过50KB的大对象。同时,文章推荐使用visualVm进行更深入的hprof文件分析。
1万+

被折叠的 条评论
为什么被折叠?



