golang GC
参考内容 https://segmentfault.com/a/1190000044152767 https://zhuanlan.zhihu.com/p/334999060 8.2 写屏障技术 | Go 语言原本 发展历程 Go V1.3- 普通标记清除法,整体过程需要启动STW,效率极低。 Go V1.5- 三色标记法, 堆空间启动写屏障,栈空间不启动,全部扫描之后,需要重新扫描一次栈(需要STW),效率普通 Go V1.8-三色标记法,混合写屏障机制,栈空间不启动,堆空间启动。整个过程几乎不需要STW,效率较高。 Mark and Sweep(Go V1.3)执行流程主要分为以下两个步骤: Mark(需要进行 STW(stop the world)):暂停程序找到所有可达的对象,然后进行标记 Sweep 删除未被标记的对象。 最后停止 STW,然后恢复正常运行。 优缺点优点 简单,容易实现 缺点 STW,让程序暂停,程序出现卡顿。 标记需要扫描整个 heap。 清除数据会产生 heap 碎片。 三色标记法(Go...
