Go语言 GC何时首次运行?[已关闭]

bwleehnv  于 2022-12-07  发布在  Go
关注(0)|答案(1)|浏览(90)

已关闭。此问题为opinion-based。当前不接受答案。
**想要改进此问题吗?**请更新问题,以便editing this post可以使用事实与引用来回答.

3天前关闭。
Improve this question
据我所知,默认情况下,每次堆在上一个GC周期后大小增加一倍时,GC都会运行。
但是GC应该至少运行一次才能继续运行。第一次是什么时候?

vuktfyat

vuktfyat1#

这似乎是一个实现细节,但供其他人参考,此刻的go1.19源代码说:

// heapMinimum is the minimum heap size at which to trigger GC.
    // ...
    // During initialization this is set to 4MB*GOGC/100. ...
    heapMinimum uint64

    // defaultHeapMinimum is the value of heapMinimum for GOGC==100.
    defaultHeapMinimum = (goexperiment.HeapMinimum512KiBInt)*(512<<10) +
        (1-goexperiment.HeapMinimum512KiBInt)*(4<<20)

    // ...  

    c.heapMinimum = defaultHeapMinimum

相关问题