Go语言mallocgc

Go语言中的new和make操作都依赖于mallocgc,这个过程包括辅助GC、空间分配、位图标记和收尾工作。在辅助GC阶段,如果内存申请与GC重叠,G需要协助扫描。大于32KB的内存直接从heap分配,小于16B则通过tinyallocator。位图标记用于对象识别,收尾工作完成最后的清理。
摘要由CSDN通过智能技术生成

runtime中new和make都依赖mallocgc。

mallocgc分为4个阶段:辅助GC,空间分配,位图标记,收尾工作。

辅助GC

若在申请内存时,正处在GC阶段。所以G需要按借债尝还的方式,扫描多少得多少,并且多出来的部分下次还能用。此外,还能窃取后台GCmark,若能窃取足够的内存,则不用辅助GC。

空间分配

 大于32KB 直接从heap获取。

<16B tiny allocator获取。

 

 位图标记

 

 收尾

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值