AICon 北京站 Keynote 亮点揭秘,想了解 Agent 智能体来就对了! 了解详情
写点什么

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

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

关注

评论

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

大模型突现能力与范式转变

百度开发者中心

大模型 #人工智能 ChatGPT

国产大模型与国外技术的碰撞

百度开发者中心

大模型 ChatGPT 文心一言

推出 Amazon Lightsail for Research

亚马逊云科技 (Amazon Web Services)

Amazon Lightsail

适用于Mac平台的Git客户端 Fork

展初云

git Mac Mac软件

第6期 | 用友BIP项目云,为企业项目管理数智化而生

用友BIP

项目管理

sip中继是什么意思

cts喜友科技

SIP sip中继

从大模型到MaaS的新生态

百度开发者中心

大模型 AIGC #人工智能

间接采购,集团现金流优化的“小成大就”

用友BIP

数智采购

亚马逊云科技生成式 AI 构建者大会精彩回顾

科技热闻

大模型开发全流程解决方案

百度开发者中心

大模型 AIGC #人工智能

大模型问答助手前端实现打字机效果 | 京东云技术团队

京东科技开发者

前端 ChatGPT 企业号10月PK榜 流式回答

sip中继的内容介绍

cts喜友科技

SIP sip中继

行业底部期,水泥建材企业如何有效进行数智人力管理升级?

用友BIP

流程制造

适用于 macOS 的温度和风扇速度控制工具 TG Pro

展初云

Mac Mac软件 风扇控制

火山引擎ByteHouse:只需2个方法,增强ClickHouse数据导入能力

字节跳动数据平台

数据库 大数据 云原生 Clickhouse 数仓

划词搜索IP插件

郑州埃文科技

PDF文件阅读和编辑软件 PDF Reader Pro

展初云

Mac PDF pdf阅读器 pdf编辑工具

性能测试的实践痛点和解决方法

老张

性能测试 技术实践

按Value对Map进行排序,技术大佬们都在用这个方法

飞算JavaAI开发助手

命名虚拟机及设置安装路径怎么操作

小齐写代码

集成业务计划IBP,实现企业最终愿景

智达方通

预算管理 集成业务计划

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