Go 1.7 正式发布

未匹配的标注

本文为官方 Go Blog 的中文翻译,详见 翻译说明

Chris Broadfoot
2016 年 8 月 15 日

今天我们很高兴地宣布 Go 1.7 的发布. 您可以从 下载页面 获取它. 此版本中有几个重大更改: IBM z Systems 上的 Linux 的端口(s390x), 编译器改进, context 包, 并支持 分层测试和基准测试.

在过去的一年中, 正在开发基于 静态单一分配 表格 (SSA) 的新编译器后端. 通过以 SSA 形式表示程序, 编译器可以更轻松地执行高级优化. 这个新的后端生成了更紧凑, 更高效的代码, 其中包括诸如 消除边界检查常见的子表达式消除. 我们在我们的 基准 上观察到速度提高了 5–35%. 目前, 新的后端仅适用于64位x86平台 (“amd64”), 但我们计划在将来的版本中将更多的体系结构后端转换为SSA.

编译器前端使用新的, 更紧凑的导出数据格式, 并更有效地处理导入声明. 尽管这些 整个编译器工具链上的更改 大部分是不可见的, 但用户已经 观察到, 大大缩短了编译时间, 并将二进制文件大小减少了 20% 至 30%.

由于垃圾收集器的加速和标准库中的优化, 程序应运行得更快一些. 与 Go 1.6 相比, 具有许多空闲协程的程序所经历的垃圾回收暂停要短得多.

在过去的几年中, golang.org/x/net/context 软件包已被证明对于许多 Go 应用程序都是必不可少的. 在与网络, 基础架构和微服务相关的应用程序 (例如 KubernetesDocker)中, 上下文用于极大地影响了应用程序. 它们使启用取消, 超时和传递请求范围的数据变得容易. 为了利用标准库中的上下文并鼓励更广泛的使用, 该软件包已从 x/net 存储库移至标准库作为 context 软件包. 对上下文的支持已添加到 net, net/httpos/exec 软件包. 有关上下文的更多信息, 请参阅 打包文档 和 Go 博客文章 Go并发模式: 上下文.

Go 1.5 种引入了对 vendor 目录 的实验性支持, 该支持由 GO15VENDOREXPERIMENT 环境变量启用. Go 1.6 默认情况下启用了此行为, 而在 Go 1.7 中, 此开关已被删除, 并且始终启用 “vendor” 行为.

Go 1.7 包含许多其他添加, 改进和修复. 在 Go 1.7 发行说明 中可以找到完整的更改集以及上述要点的详细信息.

最后, Go 团队要感谢为发布做出贡献的所有人. 有 170 人为此版本做出了贡献, 其中 140 人来自Go 社区. 这些贡献包括对编译器和链接器, 标准库, 文档和代码审查的更改. 我们欢迎您的贡献; 如果您想参与其中, 请查看 贡献准则.

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/go-blog/go1.7/6...

译文地址:https://learnku.com/docs/go-blog/go1.7/6...

上一篇 下一篇
Summer
贡献者:1
讨论数量: 0
发起讨论 只看当前版本


暂无话题~