插入写屏障

golang 的回收没有混合屏障之前,一直是插入写屏障,由于栈赋值没有 hook 的原因,所以栈中没有启用写屏障,所以有 STW。golang 的解决方法是:只是需要在结束时启动 STW 来重新扫描栈。这个自然就会导致整个进程的赋值器卡顿,所以后面 golang 是引用混合写屏障解决这个问题。混合写屏障之后,就没有 STW。

发表评论

后才能评论