QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

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:443297
用户头像
臧秀涛 略懂技术的运营同学。

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

关注

评论

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

Three-Body Technology Phoenix Growl 1.6.0 鸾和唢呐音源插件

iMac小白

Proxyman 5.6.1激活版 网络协议抓包调试

iMac小白

“混合办公”模式成功的背后,靠什么支撑?

ToB行业头条

对删库跑路Say No!

芯盾时代

访问控制 统一身份管理平台 访问权限 特权账号管理

光标快速移动和管理窗口的工具 Rectangle Pro for Mac

Rose

Mac平台XLIFF文件编辑工具Xliff Editor for Mac

Rose

FontLab for Mac 轻松设计各种字体样式

Rose

Three-Body Technology Lost Soul 1.6.0 千里洞箫音源插件

iMac小白

EasyAnimate-v3版本支持I2V及超长视频生成

阿里云大数据AI技术

AIGC 视频生成 EasyAnimate 图片生成视频

Nuro Audio Xpitch 1.0.2 音频修正校准插件

iMac小白

Proxyman Premium for Mac(网络调试和分析工具)v5.6.1激活版

Rose

活动预告|想更了解流式数据湖?亚马逊云科技数据开源软件-流式数据湖 Tech Talk来啦!

AutoMQ

AWS AutoMQ 流式数据湖

FiveNotes for mac(小型文本编辑器)v3.0.2激活版

Rose

FSNotes for mac 文本处理软件 包括纯文本、Markdown和富文本格式(RTF)

Rose

Three-Body Technology Heavier7Strings 1.7.0 虚拟吉他插件

iMac小白

专业级音频制作软件:Logic Pro X for Mac 中文激活版

你的猪会飞吗

mac软件下载 Mac破解软件

解锁思维无限,Tinderbox 10 mac笔记工具让创意触手可及!

Rose

如何挑选适合您项目的横道图软件

爱吃小舅的鱼

项目进度 横道图

TaD+RAG-缓解大模型“幻觉”的组合新疗法

京东零售技术

人工智能 LLM 大模型幻觉 企业号2024年7月PK榜

华为云DTSE助力虎彩鲜檬优化运维效率,助力迁移上云

华为云开发者联盟

云原生 华为云 华为云开发者联盟 华为云DTSE 企业号2024年7月PK榜

Serato Sample 2.0.0激活版 音频采样插件

iMac小白

SideNotes 1.4.15激活版 侧边栏便笺与笔记管理

iMac小白

QuickRecorder 1.4.4免费版 屏幕录像

iMac小白

IK Multimedia ARC System 4.0.1激活版 音频声场校准

iMac小白

Cookie 7.3.5激活版 浏览器缓存Cookie清理

iMac小白

基于51单片机设计的呼吸灯

DS小龙哥

7月月更

Topaz Video AI 专注于完成视频增强任务:去隔行扫描、放大和运动插值

Rose

Jutoh for Mac(电子书制作软件)v3.18.4中文注册版

Rose

推动工业数字化转型:天谋科技与中国恩菲完成兼容性互认证

Apache IoTDB

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