Go 部落格
Go 1.7 發布了
今天很高興宣布 Go 1.7 的發布。 你可以從下載頁面取得。 此發行版有幾項重大變更:為IBM System z 上的 Linux(s390x)、編譯器改進、所新增的context套件,以及對階層式測試和基準支援。
以靜態單一指標指派形式 (SSA) 為基礎的新編譯器後端在過去一年已在開發之中。透過以 SSA 形式表示程式,編譯器可以更輕鬆地執行進階最佳化。 這個新後端會產生更精簡、效率更好的程式碼,其中包括最佳化功能,例如邊界檢查移除和重複子表達式移除。 我們觀察到基準有 5–35% 的加快速度。 目前,新的後端僅供 64 位元 x86 平臺(「amd64」)使用,但我們計畫在未來的發行版中將更多架構後端轉換為 SSA。
編譯器前端使用新的更緊湊的匯出資料格式,並以更高效的方法處理導入宣告。雖然這些編譯器工具鏈的變更大部分都是無形的,但是使用者已經觀察到編譯時間有顯著的加速,以及二進位檔案的體積減少多達 20-30%。
程式執行應該會因為垃圾收集器的加速和標準函式庫的最佳化而稍微變快。具有許多閒置 goroutine 的程式,在 Go 1.6 中所經歷到的垃圾收集暫停時間會大幅縮短。
在過去幾年中,golang.org/x/net/context 套件已經被證明對許多 Go 應用程式來說至關重要。環境會在與網路、基礎架構和微服務(例如 Kubernetes 和 Docker)相關的應用程式中發揮很大的作用。它們讓啟動取消、逾時和傳遞要求範圍資料變得容易。為了能在標準函式庫中使用環境,並鼓勵更廣泛的使用,此套件已經從 x/net 儲存庫移至標準函式庫中,成為 context 套件。已經將環境支援新增到 net、net/http 和 os/exec 套件中。若要取得關於環境的更多資訊,請參閱 套件文件 和 Go 部落格文章 Go 並行模式:環境。
Go 1.5 引進了對「供應商」目錄的實驗性支援,透過 GO15VENDOREXPERIMENT
環境變數啟用。Go 1.6 預設啟用此行為,而 Go 1.7 會移除此開關,並且供應商行為會一直處於啟用狀態。
Go 1.7 包含更多其他新增功能、改進和修正。在 Go 1.7 發行說明 中,找出完整的變更集和上述各點的詳細資訊。
最後,Go 團隊要感謝所有對發行版做出貢獻的人。170 人對此發行版做出貢獻,其中 140 人來自 Go 社群。這些貢獻的範圍從編譯器和連結器的變更,到標準函式庫、文件,以及程式碼審查。我們歡迎貢獻;如果您想參與其中,請檢閱我們的 貢獻指南。
下一篇文章:更小的 Go 1.7 二進位檔案
上一篇文章:Go 1.6 發行了
部落格索引