Go 1.5 正式发布:实现自举、引入并发垃圾收集器

  • 臧秀涛

2015 年 8 月 19 日

话题:QConDevOps语言 & 开发架构文化 & 方法Go

在经历了几个 Beta 版本和一个 rc 版本之后,Go 1.5 终于正式发布了。这是一个很重要的版本,实现方面有很多变化。因为这个版本仍然遵循 Go 1兼容性承诺,开发团队预计,所有的 Go 程序应该都可以和以前一样编译和运行。二进制和源码包已提供下载

在实现方面,最大的变化有以下几点:

  • 编译器和运行时是完全用 Go 语言编写的(还有少量汇编),实现了自举。实现中不再涉及 C 语言,所以构建时也就不需要 C 编译器了。
  • 并发的垃圾收集器,可能的情况下,垃圾收集可以和其他 goroutine 并发进行,可以极大降低响应时间。
  • 默认情况下,Go 程序运行时的 GOMAXPROCS 会被设置为可用的核数,之前默认为 1。
  • internal packages的支持扩展到所有 repositories,不再是仅供核心包使用。
  • go 命令对 vendoring 外部依赖提供了实验性支持。
  • 引入了 go tool trace 命令,支持对程序的执行做细粒度的跟踪。

这些变化背后的具体细节,感兴趣的读者可以关注 Tony Bai 的博客文章《Go 1.5 中值得关注的几个变化》

更多细节,可以参考发布说明

另外,Go 1.6 也会继续改进 GC,具体可以参考相关文档。因为 Go 1.5 的开发周期较长,Go 1.6 的开发周期会比正常周期短一些,代码将于 11 月 1 日冻结,预计 2016 年 2 月 1 日发布。

在 10 月 15 日~17 日的QCon 上海 2015,七牛云存储 CEO许式伟将分享 Go 语言最新特性与最佳实践,敬请关注。

QConDevOps语言 & 开发架构文化 & 方法Go