JVM内存快照。
生成heap dump
可以在启动的时候添加参数,这样内存溢出的时候自动生成。
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=log/heap_dump.hprof
方式一:通过jmap命令
jmap -dump:live,format=b,file=heap.hprof <pid>
方式二:通过jconsole
通过arthas
分析
jhat
访问:
JProfiler
idea插件:https://plugins.jetbrains.com/plugin/253-jprofiler/versions
因为需要注册码,暂停使用。
Memory Analyzer(推荐)
eclipse工具 Memory Analyzer,提供独立运行程序:https://www.eclipse.org/mat/downloads.php
- 下载
- 打开
分析完成后,dump目录结构:
通过漏洞分析和线程树,我们可以大致分析出是哪个线程哪个类出现问题。
Leak Suspects会大致分析出问题出现在哪个类里,点击details可以查看具体对象。
Dominator tree可以查看具体的大对象内容。