Java中的堆被划分为已知的几代,例如新生代,可以进一步细分,例如伊甸园空间。使用-XX:+PrintHeapAtGC
JVM选项,在GC日志中打印每个堆区域的三个内存地址,格式为[A, B, C)
,其中A
、B
和C
是内存地址,例如:
eden space 838912K, 100% used [0x000000073ae00000, 0x000000076e140000, 0x000000076e140000)
这些内存地址的意义是什么?
我在网上搜索过,但无法找到有关GC日志中此部分的任何解释。
B (top)
,我认为这是有意义的,因为在垃圾回收期间堆区域已经向“左侧”压缩了。 - DontDivideByZerotop
正是这个指针。它下面的所有区域都被使用了,而它上面的区域则是空闲的。 - apangin