go语言gc实现、触发机制


本文摘自网络,作者,侵删。

算法:

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

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

stop the world

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

触发

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


本文来自:简书

感谢作者:超鸽带你飞

查看原文:go语言gc实现、触发机制

相关阅读 >>

Go语言指针作为函数参数

beeGo项目和Go项目 打包部署到linux

Go好用的类型转换第三方组件

Golang如何升级?

Go语言开篇

Golang面向对象编程之继承&虚基类【组合&接口】

Go-carbon 1.4.0 版本发布,新增获取世纪和季度开始和结束时间方法

Goland ide 安装终解

详解Golang中函数作为值与类型

Golang的多态

更多相关阅读请进入《Go》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...