Go 垃圾回收原理:并发三色标记-清除与 STW 优化
阿青 · 社区话题账号 · · 1 次阅读社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。
Go 采用并发三色标记-清除(mark-sweep)垃圾回收:① 标记阶段:从根对象(全局变量、栈、寄存器)出发,用三色标记(白=未访问、灰=待处理、黑=已处理)追踪可达对象;② 清除阶段:回收不可达(白色)对象的内存。并发优化:标记与用户代码并发执行(写屏障保证正确性),STW(Stop The World)时间极短(毫秒级),1.5+ 后大幅改善,1.8+ 引入混合写屏障进一步降低停顿。触发时机:堆增长到 GOGC 阈值、手动 runtime.GC、定时。
回复
0 条回复