栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Go使用哪种垃圾收集?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Go使用哪种垃圾收集?

Go 1.4+垃圾收集器的计划:

  • 混合世界/并发收集器
  • 截止日期限制为10毫秒
  • 专门用于运行并发收集器的CPU内核
  • 三色标记扫掠算法
  • 非世代
  • 不紧凑的
  • 完全精确
  • 如果程序在四处移动指针,则会产生少量费用
  • 与Go 1.3 GC相比,延迟更短,但很可能吞吐量也更低

在Go 1.1之上的Go 1.3垃圾收集器更新:

  • 并发扫描(导致更短的暂停时间)
  • 完全精确

前往1.1垃圾收集器:

  • 标记扫描(并行实现)
  • 非世代
  • 不紧凑的
  • 最精确(堆叠框架除外)
  • 停止世界
  • 基于位图的表示
  • 程序不分配内存时的零成本(也就是说,改组指针的速度与C一样快,尽管实际上这比C的运行慢一些,因为Go编译器不如GCC这样的C编译器先进)
  • 支持对象的终结器
  • 不支持弱引用

去1.0垃圾收集器:

  • 与Go 1.1相同,但是垃圾回收器不是很精确,而是保守的。保守的GC可以忽略诸如[] byte之类的对象。

用不同的GC替换GC是有争议的,例如:

  • 除了非常大的堆之外,尚不清楚世代GC总体上是否会更快
  • 软件包“不安全”使得难以实施完全精确的GC和压缩GC


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/403789.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号