GC笔记--card-table

card table为分代GC设计。

分代GC的优势之一是可以有minor GC。

 

minor GC会忽略old(相对) space的引用追溯,如果mark追溯到old space,minor GC即终止这一次追溯。

这时,monior GC将漏mark old ->new 的引用,从而对new space的不该清扫的垃圾清扫掉。

 

remember set/card table可以解决这个问题。

card table将old space分块,和write-barrier结合使用。

如果有old->new的引用引入,write-barrier即在card table中标记那一块old space为dirty,即下次minor GC需要扫描。

 

因为有old->new为少数的弱假设,card table 1 bit对应old space 4KB被认为是合理的。

posted @ 2017-03-17 16:07  xuyv  阅读(422)  评论(0编辑  收藏  举报