How to identify individual object's location in JVM heap space

Lijie Xu csxulijie at gmail.com
Fri Aug 23 01:46:28 UTC 2013


Hi, all. With the help of jmap or other tools, we can dump heap objects at
a specific time. Then we can find out both the number and size of the
individual object.

At this point, I would like to know the heap location (Eden, S0/S1, or Old)
of each object. But I cannot find any related information in the heap dump.
How to identify? I really need this information in my project.

I think there is a way to know the address of each object and address
boundary of each space, since GC algorithms have methods to scan objects in
a specific space.

I also noticed that there are some address information generated by
+PrintGCDetails about each space. For example,

Heap
 def new generation   total 153600K, used 152935K [0x14710000, 0x1edb0000,
0x1edb0000)
  eden space 136576K, 100% used [0x14710000, 0x1cc70000, 0x1cc70000)
  from space 17024K,  96% used [0x1dd10000, 0x1ed09f60, 0x1edb0000)
  to   space 17024K,   0% used [0x1cc70000, 0x1cc70000, 0x1dd10000)
 tenured generation   total 341376K, used 341220K [0x1edb0000, 0x33b10000,
0x33b10000)
   the space 341376K,  99% used [0x1edb0000, 0x33ae9160, 0x33ae9200,
0x33b10000)
 compacting perm gen  total 12288K, used 188K [0x33b10000, 0x34710000,
0x37b10000)
   the space 12288K,   1% used [0x33b10000, 0x33b3f2c0, 0x33b3f400,
0x34710000)
    ro space 10240K,  42% used [0x37b10000, 0x37f50348, 0x37f50400,
0x38510000)
    rw space 12288K,  54% used [0x38510000, 0x38b906f0, 0x38b90800,
0x39110000)

What's the exact meaning of these multiple address?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20130823/8ce9bf49/attachment.htm>


More information about the hotspot-gc-dev mailing list