golang触发gc的时机

本文探讨了Golang中垃圾回收(GC)的触发时机,包括主动触发(通过`runtime.GC`)和被动触发(定时器或内存阈值)。重点讲解了被动触发的两种方式,并指出其实际实现位于Go标准库的`runtime`包中,具体涉及`proc.go`的`forcegchelper`和`init`方法,以及`mgc.go`的`gcStart`函数。
摘要由CSDN通过智能技术生成

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

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

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

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

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

具体代码位置是:

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值