什么是jhat?
jdk自带的可以对jmap导出的dump进行分析的命令行。
可在安装的jdk->bin目录下找到,如下
为什么使用jhat?
既然jdk提供了jmap生成dump文件,那理所当然会有一个对此类文件进行分析的命令,也就是jhat啦,不过从jdk9开始jhat就被删除掉了,因为jdk不仅提供了jhat还提供了另一个可视化的分析工具jvisualvm(推荐使用)
如何使用jhat?
使用jmap生成dump文件(jmap使用详解),此时我将生成的文件命名为cccc.hprof。
1.执行jhat cccc.hprof,结果如下:
可以很明显的看到有一个server启动了,此时可以通过任意浏览器打开如下:
其中包括jmx以及运行类在那个包下,以及是由idea启动的,
Other Queries中包含的信息为
1.所有类信息
2.root类(也就是根对象)
3.所有类的实例数包括平台
4.所有类的实例数不包括平台
5.堆中类的柱状图
6.调用finalizer 方法的对象
7.OQL语句查询
因为在jdk1.8之后就去掉了加上有更好用的jvisualvm这里就不做过多赘述了,大概知道用法即可.