关于go1.8以后的gc

在go1.15版本后的gc,按我的理解是分4个阶段:
1.stw 启动扫描root对象,然后启动插入屏障和删除屏障
2.start the world 然后用户逻辑和扫描并发执行,扫描root下面所有的引用对象改变颜色,然后屏障机制记录修改点
3.stw 重新扫描栈区把漏掉的插入屏障为录入的对象标记然后扫描屏障机制的记录把更改的对象置为灰色-黑色 直到没有灰色对象
4.清除内存垃圾,归还内存
然后1.18版本以后看到大部分文章说,混合写屏障几乎用不到stw。
我的问题是:
1.请教下我对1.15gc的理解是否正确?如不对请各位指出一下。
1.栈区没有stw,那么堆是否需要stw,那么堆栈整个过程是怎么样的?

讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!