Heap Dump (heap=dump)

Heap Dump (heap=dump)
转储堆内容使用heap=dump选项.可以是ASCII或者是二进制格式,根据设定的格式,jhat解析二进制格式.format=b.
如果指定格式是二进制,转储内容包括原始类型实例域和原始数组内容.
以下命令生成的转储内容来自正在执行的javac编译命令.
javac -J-agentlib:hprof=heap=dump Hello.java
内容包含垃圾搜集的root对象,和从root可到达的对象.样例输出如下

HEAP DUMP BEGIN (39793 objects, 2628264 bytes) Wed Oct 4 13:54:03 2006
ROOT 50000114 (kind=<thread>, id=200002, trace=300000)
ROOT 50000006 (kind=<JNI global ref>, id=8, trace=300000)
ROOT 50008c6f (kind=<Java stack>, thread=200000, frame=5)
:
CLS 50000006 (name=java.lang.annotation.Annotation, trace=300000)
    loader 90000001
OBJ 50000114 (sz=96, trace=300001, class=java.lang.Thread@50000106)
    name 50000116
    group 50008c6c
    contextClassLoader 50008c53
    inheritedAccessControlContext 50008c79
    blockerLock 50000115
OBJ 50008c6c (sz=48, trace=300000, class=java.lang.ThreadGroup@50000068)
    name 50008c7d
    threads 50008c7c
    groups 50008c7b
ARR 50008c6f (sz=16, trace=300000, nelems=1,
    elem type=java.lang.String[]@5000008e)
    [0] 500007a5
CLS 5000008e (name=java.lang.String[], trace=300000)
    super 50000012
    loader 90000001
:
HEAP DUMP END

ROOT,OBJ,CLS,ARR分别代表root,实例对象,类,数组.
java.lang.Thread 实例50000114有一个thread group实例(50008c6c)和其他对象.
可以使用jhat来分析转储文件
原文地址:https://www.cnblogs.com/shuiyonglewodezzzzz/p/8749151.html