golang触发gc的时机

时间:2025-02-22 08:01:50

参考:Golang什么时候会触发GC - 简书

总结一下,一共有主动和被动两种:

主动就是:RD调用来触发,但是一般不会自己调

被动就是分为两种:一种是搞一个定时器,定时来GC;一种是给内存搞一个上限,到达上限就自动触发。但是问题是,什么时候被动触发呢?

一开始的思路是:在go框架或者公司内部平台配置的。但实际上是在go标准库里面搞的。

具体代码位置是:

/usr/local/Cellar/go/1.16.5/libexec/src/runtime/   里面的forcegchelper和init方法

/usr/local/Cellar/go/1.16.5/libexec/src/runtime/  里面的gcStart