引入SSA之后,Go語言程序的執行性能將明顯提升

gisos 8年前發布 | 9K 次閱讀 SSA Golang

Keith Randall從2015年初就開始設計Go編譯器的SSA(Static Single Assignment,靜態單賦值)后端。將原來的IR轉換成SSA形式的IR,可以引入更多優化,比如更好的公共子表達式消除、無用代碼消除、寄存器分配和棧幀分配等,從而生成效率更高的指令。當然,編譯速度可能會受到影響。

在探討Go 1.7的開發計劃時,Russ Cox就提到,在Go 1.7開發周期開始的時候,Keith想把基于SSA的編譯器合并到主干代碼中。(https://groups.google.com/forum/#!topic/golang-dev/TerfinvPffw) 
近日,Keith Randall給出了與go1.6相比較的一組基準測試數據:

640.jpg

可以看出,大部分情況下執行速度有明顯改進。

至于編譯速度,以編譯net/http為例(go test -a -c -gcflags=-d=ssa/check/off net/http) , 與go1.6相比,新的編譯器大約慢7%。
期待隨著編譯器的不斷優化,編譯時間能進一步減少。

來源:臧秀濤 開發資訊

 本文由用戶 gisos 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!