RSet的维护策略

RSet的维护策略

RSet的维护策略 #

RSet 的维护策略,也就是说哪些引用关系需要加入到 RSet:

  1. 如果是同一个 Region 的对象,它们之间相互引用是不必维护的,这个很好理解,因为不存在跨 Region 的问题;
  2. 由年轻代 Region 出发到其他 Region 的,无论目标是年轻代还是老年代,这一类引用也都不用维护。因为结合 young GC 和 mixed GC 的策略可以知道,无论是什么回收模式,年轻代的全部 Region 都会被清理,这就意味着一定会对年轻代的所有对象进行遍历;
  3. 从 CSet 集合的 Region 出发指向其他 Region 的,也不需要维护,理由和第 2 点是一样的。

总的来说,RSet 需要维护的引用关系只有两种:

  1. 非 CSet 老年代 Region 到年轻代 Region 的引用。
  2. 非 CSet 老年代 Region 到 CSet 老年代 Region 的引用。

Viewpoint #

From #

22 | G1 GC:分区回收算法说的是什么?