Go 1.7 正式发布,改进编译器和链接器
jopen 8年前
<p><img alt="Go 1.6发布" src="https://simg.open-open.com/show/03256602fe1b8caa41f69d0e9e0568fc.jpg" /></p> <p>在发布了 6 个 rc 版本之后,Go 1.7 终于正式发布了。</p> <p>Go 现在的发布周期基本是半年一个版本( https://github.com/golang/go/wiki/Go-Release-Cycle ),新的功能特性的开发主要集中在前 3 个月,之后会冻结起来,原则上只接受 bug 修复和文档更新,最终完成测试和发布。</p> <p>Go 1.7 的变化主要在工具链、运行时和库的实现上。语言规范只有一处很小的变化。</p> <p>编译工具链方面,引入 SSA 应该是新版本最大的特性之一。“开发资讯”之前也介绍过该特性:<a href="http://mp.weixin.qq.com/s?__biz=MzAwNjY4NTQ4MA==&mid=402727097&idx=1&sn=9935fe07a7968d7abe77496ca403ec38&scene=21#wechat_redirect" style="font-size: 10pt; line-height: 1.6;">引入SSA之后,Go语言程序的执行性能将明显提升</a> 。引入该特性之后,编译器能够生成更紧凑、执行更高效的代码。该特性默认开启,可以使用“-ssa=0”参数关闭。基准测试表明,编译的 Go 程序执行时间可减少 5-35%。</p> <p>包中的元数据格式从之前的文本格式修改为更紧凑的二进制格式。生成的包会更小。可以通过“-newexport=0”关闭该特性。</p> <p>得益于编译器和链接器的改进,使用 Go 1.7 构建的二进制文件通常会比使用 Go 1.6 构建的小,有些情况下减少会多达 20-30%。</p> <p>性能是不变的主题,通过新的编译器后端,以及对垃圾收集器和核心库的优化,大部分程序都会运行得更快。</p> <p>国外最受欢迎的游戏流媒体视频网站 Twitch 的很多系统中就用到了 Go。根据 Twitch 工程师 <a href="/misc/goto?guid=4958993231851277280">Rhys Hiltner 的博客</a>,他们使用了 6 月的 Go 1.7 预发布版本,在没有手动调优的情况下,GC 停顿时间都有更好的表现。就 Twitch 的聊天系统而言,通常停顿时间接近 1 毫秒,与调优过的 1.6 相比,都有 10 倍提升。</p> <p>支持的系统方面,增加了对 macOS 10.12 Sierra 的支持。</p> <p>更多细节见 Go 1.7 发布说明:<a href="/misc/goto?guid=4958993231953354674">https://tip.golang.org/doc/go1.7</a>。</p> <p>如果对 Go 1.8 感兴趣,可以查看 <a href="/misc/goto?guid=4958993232054257742">https://groups.google.com/d/topic/golang-dev/098vr4999Tk/discussion</a></p> <p>这里的讨论。</p> <p>出处:微信公众平台:<a href="http://mp.weixin.qq.com/s?__biz=MzAwNjY4NTQ4MA==&mid=2651174335&idx=1&sn=1a9317e93a1ad1368bec8c5df1f0cb0b&scene=1&srcid=0816jbyFshLCmdPckM9EgVjt#rd">开发资讯</a> ,作者:臧秀涛 </p> <p> </p> <p>软件下载地址(需要梯子):</p> <p>https://golang.org/dl/</p> <p> </p> <p>国内网盘下载:</p> <p><a href="/misc/goto?guid=4958993232250174382">Golang 1.7 正式版下载</a></p>