keith randall從2015年初就開始設計go編譯器的ssa(static single assignment,靜态單指派)後端。将原來的ir轉換成ssa形式的ir,可以引入更多優化,比如更好的公共子表達式消除、無用代碼消除、寄存器配置設定和棧幀配置設定等,進而生成效率更高的指令。當然,編譯速度可能會受到影響。
在探讨go 1.7的開發計劃時,russ cox就提到,在go 1.7開發周期開始的時候,keith想把基于ssa的編譯器合并到主幹代碼中。
近日,keith randall給出了與go1.6相比較的一組基準測試資料:

可以看出,大部分情況下執行速度有明顯改進。
至于編譯速度,以編譯net/http為例(go test -a -c -gcflags=-d=ssa/check/off net/http) , 與go1.6相比,新的編譯器大約慢7%。
期待随着編譯器的不斷優化,編譯時間能進一步減少。
====================================分割線================================