美文网首页
go三色回收(二)

go三色回收(二)

作者: lucasgao | 来源:发表于2021-03-28 19:48 被阅读0次

    存在的问题

    1. 为什么必须三色,二色的话会有什么问题
    2. 插入写屏障为什么不行
    3. 为什么必须使用混合写屏障,删除写屏障为什么不行。

    插入写屏障为什么不行

    如果一个对象从堆上移动到栈上指向,则不开启写屏障,此时就会出现漏标记。所以在启用插入写屏障的同时,需要在扫描结束后,启动stw,然后重新扫描stack。

    删除写屏障为什么不行

    删除写屏障可以解决上面的问题,但是还有个问题,就是 栈上的移动到堆上,因为栈上没有写屏障,该对象不会被标灰色,那么又会出现漏标的情况。 所以一般删除写屏障需要在开启的时候 进行快照。

    相关文章

      网友评论

          本文标题:go三色回收(二)

          本文链接:https://www.haomeiwen.com/subject/euhmhltx.html