Go 语言中 GC 的流程是什么

当前版本的 Go 以 STW 为界限,可以将 GC 划分为五个阶段:

阶段说明赋值器状态 GCMark 标记准备阶段,为并发标记做准备工作,启动写屏障 STWGCMark 扫描标记阶段,与赋值器并发执行,写屏障开启并发

GCMarkTermination 标记终止阶段,保证一个周期内标记任务完成,停止写屏障 STWGCoff 内存清扫阶段,将需要回收的内存归还到堆中,写屏障关闭并发

GCoff 内存归还阶段,将过多的内存归还给操作系统,写屏障关闭并发

发表评论

后才能评论