写点什么

Go 1.6 将进一步改进垃圾收集器

  • 2015-09-11
  • 本文字数:997 字

    阅读完需:约 3 分钟

尽管 Go 1.5 刚刚发布,仍然相对较新,但是 Go 团队已经在致力于改进其新的低延迟并发垃圾收集器,希望 Go 更适合新的应用领域。Google 工程师 Austin Clements Rick Hudson 如是

Go 1.5 用新的垃圾收集器代替了原来的STW(stop-the-world) GC,解决了延迟问题。当负载较重时,每50ms,新的GC 的活动时间可以控制在10ms 以下,从而使Go 程序在一般情况下能运行得更快些。在更极端的情况下,停顿可以从300ms 降到4ms

Go 1.6 的目标是进一步稳定 GC,并在以下几个方面做出改进:

  • 状态协调(State coordination):Go 1.5 GC 有个主要瓶颈是从 Go 1.4 继承来的,源自其集中式的 GC 协调器(coordinator),这是一个单独的 goroutine,它会将工作进一步分派给 worker goroutine 去完成。一种解决方案是用去中心化的状态机代替集中式协调器。这样修改有个额外的好处,使得重新设计标记完成屏障(mark completion barrier)成为可能,因为它已经变得非常凌乱,而且性能很差。
  • 信用系统(Credit system):Go 1.5 在两个不同的地方使用了一个信用系统:一个是确保清扫(sweeping)在一个 GC 周期和下一次触发堆操作(the next heap trigger)之间完成,一个是确保扫描(scanning)在触发堆操作(an heap trigger)和随后实现堆处理目标之间完成。改进信用系统的一种建议方法是,使其操作总是在 black 阶段进行,以避免未完成的分配操作进入下一个 GC 周期。
  • 标记结束(Mark termination):根据 Clements 和 Hudson 的介绍,在 Go 1.5 中,标记结束阶段是停顿时间的大头。这里的目标是尝试并确保大部分应用可以在 10ms 停顿的阈值下运行,这也是 Go 1.5 在很多情况下已经实现了的。希望所做修改的复杂度较低或中等,比如把 finalizer 扫描从标记结束阶段移到并发扫描,这样对于每 1GB 大小的堆,应该可以节省 1ms,以及去掉一个成本很高的计数循环,对于较大的堆,这个循环占去了标记阶段的另外一半。
  • sweeper 和 scavenger:某些程序会在 sweeper 上消耗大量时间,在这上面投入些精力,应该有性能改进。一个非常激进的方案是完全去掉 sweeper。还有一个不那么激进的方案,可以在 GC 阶段最后,尽早释放较大的对象,并且在所有的系统上支持 scavenger,不管物理页面是多大。

上面只是对计划所做改进的一个概览,欲全面了解,可以阅读原始文档。文档中还有进一步指向 GitHub issues 的链接,这些 issues 记录 了每个改变背后的理由以及建议方案。

2015-09-11 16:443704
用户头像
臧秀涛 略懂技术的运营同学。

发布了 300 篇内容, 共 151.0 次阅读, 收获喜欢 35 次。

关注

评论

发布
暂无评论
发现更多内容

AI技术在评估英语学习的应用

北京木奇移动技术有限公司

AI技术 AI教育 软件外包公司

NodeLocalDNS:优化集群DNS性能与可靠性的利器

代码忍者

利用GPU Operator快速构建Kubernetes中的GPU加速环境

代码忍者

供应链计划性能优化解决方案-Clickhouse本地Join

京东科技开发者

智慧党建系统(源码+文档+部署+讲解)

深圳亥时科技

面试必问!项目高频面试题解析

王中阳Go

面试 后端

京东商品视频数据接口(JD.item_video)丨京东API接口指南

tbapi

京东API接口 京东商品视频接口

镜舟科技2024年度回顾,坚持长期价值,进一步实现商业突破

镜舟科技

开源 数据分析 StarRocks 镜舟科技

京东JD商品详情原数据API接口的开发、运用与收益

科普小能手

数据挖掘 数据分析 电商 京东 API 接口

使用火语言RPA批量创建指纹浏览器

火语言RPA

人工智能伦理困境:技术发展的界限在哪里?

天津汇柏科技有限公司

AI 人工智能

国家大力推进车联网信息安全体系建设

芯盾时代

车联网 物联网 电动汽车

本地(或自下载)浏览器插件 安装指南

京东科技开发者

AI技术在英语学习中的应用

北京木奇移动技术有限公司

英语学习 AI技术 软件外包公司

区块链音乐NFT的开发框架

北京木奇移动技术有限公司

区块链技术 软件外包公司 音乐NFT

25年你还不知道什么是云管平台吗?来这里看看!

行云管家

云计算 云服务 云管平台

云行| “智”绘首都发展新篇章,天翼云携手伙伴共创“京”彩未来!

天翼云开发者社区

人工智能 云计算 天翼云

鸿蒙NEXT使用request模块实现本地文件上传

威哥爱编程

鸿蒙 HarmonyOS ArkTS HarmonyOS NEXT HarmonyOS5.0

一位海外开发者的 OpenSPG KAG 实践分享

可信AI进展

知识图谱 大模型 rag RAG搭建

AI技术在英语发音纠正中的应用

北京木奇移动技术有限公司

英语学习 AI技术 软件外包公司

镜舟科技荣登《2024 中国大数据产业年度「国产化」优秀代表厂商》榜单!

镜舟科技

开源 数据分析 分析型数据库 StarRocks 湖仓

谷云科技iPaaS V7.0+企业级AI Agent产品全新发布

谷云科技RestCloud

API 数据集成 ipaas AIAgent

显卡危机的解决方案,全面解析ToDesk云电脑:服务配置与应用场景探索

小喵子

云电脑 云游戏 云电竞

架构提效的矛盾和矛盾的主要方面

京东科技开发者

警务协同办公系统(源码+文档+部署+讲解)

深圳亥时科技

商机信息平台(源码+文档+部署+讲解)

深圳亥时科技

Go 1.6将进一步改进垃圾收集器_语言 & 开发_Sergio De Simone_InfoQ精选文章