Как я могу узнать, находится ли Java-объект в режиме владения или eden в дампе кучи - PullRequest
11 голосов
/ 20 декабря 2011

У меня есть дамп кучи Hotspot JVM, и я попытался выяснить, является ли объект живым в пространстве владения, eden или в живых, но я не смог.

Ценю, если кто-то может мне помочь.

1 Ответ

7 голосов
/ 20 декабря 2011

Не думаю, что ты можешь.Из этого сообщения на форуме,

извините, плохие новости, дамп кучи также не содержит информации о пространстве, в котором находится объект

Просмотрсодержимое дампов кучи Java с этой страницы , кажется, подтверждает, что дамп кучи не содержит информацию о генерации,

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
...