Point-Out与Point-In #
像 G1 这种分区回收算法,有些 Region 可能被选入 CSet( 回收集合CollectionSet),有些则不会。所以,我们需要知道当一个 Region 需要被回收时,有哪些其他的 Region 引用了自己。相应地,为了加快定位速度,分区回收算法为每个 Region 都引入了记录集(Remembered Set,RSet),每个 Region 都有自己的专属 RSet。
和 Card table 不同的是,RSet 记录谁引用了我,这种记录集被人们称为
point-in 型的,而 Card table 则记录我引用了谁,这种记录集被称为
point-out 型。

图的左侧为Card Table,展示了一个维护跨区引用的通用记录集,它是全局唯一的,记录了每个Region对其他Region的引用,为Point Out型 。
图右侧展示了 Region1 的专属记录集,记录的是哪些Region引用了Region1。