一、堆转储文件
堆转储文件(heap dump):是JVM 的某个时间点、Java 进程的内存快照。里面包含了当时内存中还没有被 full GC 回收的所有对象和类信息。
二、手动生成堆转储文件的命令
jmap -dump:format=b,file=<filename.hprof> <pid>
这将生成一个hprof后缀的文件,其中:
- format=b,表示转储为二进制格式。
- file 指定转储文件的路径,后缀为 hprof。
- pid 表示进程 ID。
三、自动生成堆转储文件
JVM 中配置如下
-XX:+HeapDumpOnOutOfMemoryError
当内存溢出时就会记录异常到堆转储文件
四、VisualVM分析hprof堆转储文件
可以使用 jdk 自带的VisualVM工具来进行分析(jdk高于1.8或1.8晚期的 jdk 已经没有自带了,可以去 VisualVM官网下载安装)
1.java安装目录下的bin目录下双击打开 jvisualvm.exe
2.选择文件点击装入,然后加载要分析的hprof文件
3.选择类,然后对堆内存大小进行排序,双击可以查看具体类型的实例内存占用情况
4.双击具体的实例可以查看该实例的内容和占用的大小,可以选择全部展示或者把该内容保存为一个txt文件
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/80228.html