引入SSA之后,Go語言程序的執行性能將明顯提升
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相比較的一組基準測試數據:
可以看出,大部分情況下執行速度有明顯改進。
至于編譯速度,以編譯net/http為例(go test -a -c -gcflags=-d=ssa/check/off net/http) , 與go1.6相比,新的編譯器大約慢7%。
期待隨著編譯器的不斷優化,編譯時間能進一步減少。
來源:臧秀濤 開發資訊
本文由用戶 gisos 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!