导出内存的两种方法
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=./
jmap -dump:live,format=b,file=heap.hprof pid
https://www.eclipse.org/mat/downloads.php
下载mat文件,右键选择显示包内容。
浏览包内容,右键Contents/MacOs/MemoryAnalyzer终端运行。
打开文件,选择hprof文件,弹出对话框,选择Leak Suspect report。
全部统计信息
按类名过滤统计信息
选择对象,右键 Merge path。
在结果中,可以点开类,查看引用层级。当看到完整的引用路径,就可以定位产生溢出的具体位置。
通过层级方式查看内存对象。