G1的RSet和卡表
what:
RSet是个空间换时间的数据结构,全称是Remembered set。RSet是Points-into(谁引用了我);而CMS中的Card Table (https://www.cnblogs.com/sfzlstudy/p/15429902.html)是一种Points-out(我引用了谁的对象)。
RSet的key是引用本region中对象的Region起始地址,value是key对应Region中具体引用了的对象的卡片集合。
每个Region默认按照512Kb划分成多个Card,所以RSet需要记录的东西应该是: xx Region的 xx Card。
绿色部分的Card
表示该Card
中有对象引用了其他Card
中的对象,这种引用关系用蓝色实线表示
why:
解决跨代引用问题,记录region之间的引用关系。从而可以通过本region的Rset快速找到存活的对象。