美文网首页golang你不得不知道的事
go语言gc实现、触发机制

go语言gc实现、触发机制

作者: 超鸽带你飞 | 来源:发表于2021-03-15 00:27 被阅读0次

    算法:

    标记-清除:从根变量开始遍历所有引用的对象,引用的对象标记为"被引用",没有被标记的进行回收。

    • 优点:解决了引用计数的缺点(不能很好的处理循环引用,而且实时维护引用计数,有也一定的代价。)
    • 缺点:需要STW,即要暂时停掉程序运行。
    • 代表语言:Golang(其采用三色标记法)

    stop the world

    是gc的最大性能问题,对于gc而言,需要停止所有的内存变化,即停止所有的goroutine,等待gc结束之后才恢复。

    触发

    阈值:默认内存扩大一倍,启动gc
    定期:默认2min触发一次gc,src/runtime/proc.go:forcegcperiod
    手动:runtime.gc()

    相关文章

      网友评论

        本文标题:go语言gc实现、触发机制

        本文链接:https://www.haomeiwen.com/subject/lmjhcltx.html