堆转储是Java虚拟机(JVM)堆中所有对象在某个时间点的快照。JVM为堆中所有类实例和数组的对象分配内存。当不再需要某个对象并且没有对该对象的引用时,垃圾回收器会回收堆内存。通过VisualVM检查堆,您可以找到对象的创建位置,并在源中找到对这些对象的引用。 如果 JVM 软件无法从堆中删除不需要的对象,则 VisualVM 可以帮助您找到该对象最近的垃圾回收根目录。
一、获取堆转储文件
方式一:jmap -dump:live,format=b,file=/app/logs/heapdump.hprof <PID>
方式二:java启动命令里配置参数-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/app/logs/heapdump.hprof
方式三:使用VisualVM工具通过界面操作生成。
VisualVM可以打开以.hprof格式保存的堆转储.
二、摘要视图
打开堆转储时,默认情况下,VisualVM 会显示“摘要”视图。 “摘要”视图显示执行堆转储的运行环境和其他系统属性。