|
Google的Go語言需要編譯速度 灰鴿子,灰鴿子下載
![]()
自2015年,當語言的編譯器從C轉(zhuǎn)換為Go時,較慢的編譯時間阻礙了語言
Google的開源Go語言將通過計劃的1.8版升級來提高編譯時間。
詳細介紹了Go的計劃工具鏈改進,貢獻者Dave Cheney說,1.8版本將于2月發(fā)布,預計將在1.7版本的基礎(chǔ)上平均提高15%的編譯率。這將有助于增加編譯時間,這最近困擾了Go。
“自從2015年8月發(fā)布的Go 1.5以來,編譯時間明顯慢于Go 1.4,”Cheney說。 “關(guān)于解決這種減速的工作在Go 1.7周期中認真開始,目前仍在進行。這個困境出現(xiàn)在編譯器從C轉(zhuǎn)換為Go之后。
為了改進編譯,語言的解析器被重寫以使其更快,并刪除從以前的yacc解析器繼承的許多包級別的變量。 “這個解析器產(chǎn)生一個新的抽象語法樹,而編譯器的其余部分期望前面的yacc語法樹,”Cheney說。 “對于1.8,新的解析器必須將其輸出轉(zhuǎn)換為先前的語法樹,以供編譯器的其余部分使用。雖然解析器帶有一個額外的轉(zhuǎn)換步驟,它不比以前的版本慢;這個轉(zhuǎn)換要求應該在Go 1.9中刪除,Cheney說。
為了提高代碼生成,SSA后端現(xiàn)在支持更多的架構(gòu);它已經(jīng)推出了英特爾64在Go 1.7。 “AMD64由于是最受歡迎的生產(chǎn)架構(gòu),一直是最快的,”Cheney說。結(jié)果比較Go 1.8到Go 1.7在英特爾架構(gòu)上顯示,改進的代碼生成,轉(zhuǎn)義分析改進和優(yōu)化到標準庫的中等改進同樣改善,根據(jù)切尼。 Go 1.8還將支持32位Mips平臺,這在Go 1.7中不被支持,并且將使用defer語句減少開銷,defer語句延遲函數(shù)的執(zhí)行,直到周圍的函數(shù)返回。
Go,或許最知名的用于開發(fā)Docker容器平臺,一直是語言流行的新星。
|
|