互联网就业技术指南Golang与区块链Go知识库

golang的垃圾回收(GC)机制

2018-12-05  本文已影响48人  Chole121

请先阅读 golang的goroutine调度机制

golang的垃圾回收采用的是 标记-清理(Mark-and-Sweep) 算法
就是先标记出需要回收的内存对象快,然后在清理掉;
在这里不介绍标记和清理的具体策略,只介绍 GC过程是怎么调度的以及stw相关
这个算法,会导致 stw (stop the world) 的问题,中断用户逻辑

触发GC机制

每当触发的时候,在主GC线程中就会走如下的GC流程:

对于上面的三个步骤,分别解释:

Stop the world:

标记:

清理:

Start the world:


综上:

是基于1.4 版本的,GC过程在标记过程是(STW)的

在1.5 版本里面对GC做了很大的优化;采用三色标记,将标记过程细化成三段,只有前后的两段是stw的;极大地缩短了gc的stw时间

感谢作者:liangzhiyang
查看原文:golang的垃圾回收(GC)机制

添加小编微信:grey0805,加入知识学习小分队~!

上一篇 下一篇

猜你喜欢

热点阅读