runtime中new和make都依赖mallocgc。
mallocgc分为4个阶段:辅助GC,空间分配,位图标记,收尾工作。
辅助GC
若在申请内存时,正处在GC阶段。所以G需要按借债尝还的方式,扫描多少得多少,并且多出来的部分下次还能用。此外,还能窃取后台GCmark,若能窃取足够的内存,则不用辅助GC。
空间分配
大于32KB 直接从heap获取。
<16B tiny allocator获取。
位图标记
收尾
runtime中new和make都依赖mallocgc。
mallocgc分为4个阶段:辅助GC,空间分配,位图标记,收尾工作。
若在申请内存时,正处在GC阶段。所以G需要按借债尝还的方式,扫描多少得多少,并且多出来的部分下次还能用。此外,还能窃取后台GCmark,若能窃取足够的内存,则不用辅助GC。
大于32KB 直接从heap获取。
<16B tiny allocator获取。