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快速找到存活的对象。

posted @ 2021-10-28 00:18  修心而结网  阅读(818)  评论(0编辑  收藏  举报