今天Go团队很高兴地宣布Go 1.8发布了。你可以从下载页面获得1.8版本。在这个版本中,整个标准库有显着的性能改进和变化。
Go 1.7中为64位x86系统引入的编译器后端现在用于所有体系结构,在这些体系结构下可以看到显着的性能改进。例如,我们的基准程序所需的CPU时间在32位ARM系统上减少了20-30%。在此版本中,对于64位x86系统也有一些性能提升。编译器和链接器跑得更快。编译时间应该比Go 1.7缩短约15%。在这一领域还有更多的工作要做:希望未来版本的编译速度更快。
垃圾收集暂停应明显更短,通常在100微秒以下,通常低至10微秒。
HTTP服务器添加对HTTP/2 Push的支持,允许服务器向客户端推送。这对于消除网络延迟非常有用。 HTTP服务器还添加了对优雅停机的支持,允许服务器完成正在运行的请求之后关闭从而最小化停机时间。
context(添加到Go 1.7中的标准库)提供了取消和超时机制。 Go 1.8在更多的标准库中添加了对context的支持,包括database/sql和net包以及net/http包中的Server.Shutdown。
现在使用新添加的Slice函数使得对slice进行排序更简单。例如,要通过“名称”字段对结构体片段进行排序:
sort.Slice(s, func(i, j int) bool { return s[i].Name < s[j].Name })
Go 1.8包括很多新增API,以及老API的改进和修复。 你可以在Go 1.8发行说明中查找完整的修改列表,以及有关上面列出内容的详细信息。
为了庆祝新版发布,世界各地的Go用户组都在本周举办发布会。 发布会已经成为Go社区的一个传统,所以如果你错过了这一次,当1.9发布时应该注意了。
感谢超过200个贡献者谁帮助了1.8版本的发布。