Go 1.7 正式發布,改進編譯器和鏈接器
在發布了 6 個 rc 版本之后,Go 1.7 終于正式發布了。
Go 現在的發布周期基本是半年一個版本( https://github.com/golang/go/wiki/Go-Release-Cycle ),新的功能特性的開發主要集中在前 3 個月,之后會凍結起來,原則上只接受 bug 修復和文檔更新,最終完成測試和發布。
Go 1.7 的變化主要在工具鏈、運行時和庫的實現上。語言規范只有一處很小的變化。
編譯工具鏈方面,引入 SSA 應該是新版本最大的特性之一。“開發資訊”之前也介紹過該特性:引入SSA之后,Go語言程序的執行性能將明顯提升 。引入該特性之后,編譯器能夠生成更緊湊、執行更高效的代碼。該特性默認開啟,可以使用“-ssa=0”參數關閉。基準測試表明,編譯的 Go 程序執行時間可減少 5-35%。
包中的元數據格式從之前的文本格式修改為更緊湊的二進制格式。生成的包會更小。可以通過“-newexport=0”關閉該特性。
得益于編譯器和鏈接器的改進,使用 Go 1.7 構建的二進制文件通常會比使用 Go 1.6 構建的小,有些情況下減少會多達 20-30%。
性能是不變的主題,通過新的編譯器后端,以及對垃圾收集器和核心庫的優化,大部分程序都會運行得更快。
國外最受歡迎的游戲流媒體視頻網站 Twitch 的很多系統中就用到了 Go。根據 Twitch 工程師 Rhys Hiltner 的博客,他們使用了 6 月的 Go 1.7 預發布版本,在沒有手動調優的情況下,GC 停頓時間都有更好的表現。就 Twitch 的聊天系統而言,通常停頓時間接近 1 毫秒,與調優過的 1.6 相比,都有 10 倍提升。
支持的系統方面,增加了對 macOS 10.12 Sierra 的支持。
更多細節見 Go 1.7 發布說明:https://tip.golang.org/doc/go1.7。
如果對 Go 1.8 感興趣,可以查看 https://groups.google.com/d/topic/golang-dev/098vr4999Tk/discussion
這里的討論。
出處:微信公眾平臺:開發資訊 ,作者:臧秀濤
軟件下載地址(需要梯子):
https://golang.org/dl/
國內網盤下載: