java 关于 ZGC 和 G1 的垃圾回收
java garbage collection about ZGC and G1
Java中ZGC的relocation set和G1的collection set有什么区别?我在学习JAVA的垃圾回收,对这个没把握
Collection Set
是 G1
考虑进一步观察的区域。 G1
,在 mark
阶段,将计算关于每个区域的一些元数据,这些元数据信息之一是每个区域的存活率。它还知道之前 运行 在每个区域回收死对象花费了多少时间。为了实现其超时目标,它选择具有 最多 垃圾的区域并处理它们。这些区域称为:collection set
.
Relocation Set
基本上是一回事,至少在逻辑上是这样。 ZGC
选择具有 最多 垃圾的区域(他们称之为 pages
)。它首先在 stop-the-world 事件下重新定位 GC 根,然后并发遍历此 Relocation Set
.
所以从本质上讲,它们在逻辑上 很接近同一件事,因为这些 GC 做事的方式完全不同,这就是它们相似之处的界限,IMO。
Java中ZGC的relocation set和G1的collection set有什么区别?我在学习JAVA的垃圾回收,对这个没把握
Collection Set
是 G1
考虑进一步观察的区域。 G1
,在 mark
阶段,将计算关于每个区域的一些元数据,这些元数据信息之一是每个区域的存活率。它还知道之前 运行 在每个区域回收死对象花费了多少时间。为了实现其超时目标,它选择具有 最多 垃圾的区域并处理它们。这些区域称为:collection set
.
Relocation Set
基本上是一回事,至少在逻辑上是这样。 ZGC
选择具有 最多 垃圾的区域(他们称之为 pages
)。它首先在 stop-the-world 事件下重新定位 GC 根,然后并发遍历此 Relocation Set
.
所以从本质上讲,它们在逻辑上 很接近同一件事,因为这些 GC 做事的方式完全不同,这就是它们相似之处的界限,IMO。