1.首先使用jps命令查看进程PID
2.使用jmap -dump:format=b,live,file=文件名 进程PID,文件名可以使txt,bin,hprof等
然后使用jdk自带的jvisualvm工具,把文件导进去进行分析【推荐使用Eclipse Memory Analyzer (MAT),能够详细看到内存数据情况】
找到文件导入即可
1.当OutOfMemoryError发生时,自动生成 heap dump文件的方法,输出到指定的路径d:/aa.hprof
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=d:/aa.hprof
2.当 JVM 执行 FullGC 前执行 dump
-XX:+HeapDumpBeforeFullGC
3.当 JVM 执行 FullGC 后执行 dump
-XX:+HeapDumpAfterFullGC
内存消耗查看jmap -histo:live pid >> 输出文件路径
jmap -histo:live 16900 >> d:/s.txt
注意:JVM 生成 Heap Dump 的时候,虚拟机是暂停一切服务的。如果是线上系统执行 Heap Dump 时需要注意
转载自:https://blog.youkuaiyun.com/dhj199181/article/details/108504982, 文件做记录使用,如侵权请联系