(資料圖片僅供參考)
8月10日,谷歌發(fā)布了編程語(yǔ)言Go的全新1.21版本。此次更新的主要變化集中在工具鏈、運(yùn)行時(shí)和庫(kù)的實(shí)現(xiàn)。谷歌此前已經(jīng)表示,Go語(yǔ)言將在1.21版本取消對(duì)舊版微軟Windows和蘋(píng)果macOS系統(tǒng)的支持。Go 1.21的主要更新內(nèi)容包括:改進(jìn)工具鏈,配置文件引導(dǎo)優(yōu)化(PGO)功能正式進(jìn)入穩(wěn)定階段。PGO的原理是“編譯器使用程序的運(yùn)行時(shí)profiling信息,因此能夠生成更高質(zhì)量的代碼,從而提高程序的性能”。如果主軟件包目錄中存在名為default.pgo的文件,go命令將使用該default.pgo文件來(lái)啟用PGO構(gòu)建。在語(yǔ)言變更方面,Go 1.21添加了新的內(nèi)置函數(shù):min, max, clear,并對(duì)泛型函數(shù)的類(lèi)型推斷進(jìn)行了多項(xiàng)改進(jìn)。同時(shí),開(kāi)發(fā)團(tuán)隊(duì)計(jì)劃在未來(lái)版本中解決Go編程中最常見(jiàn)的“循環(huán)變量捕獲”問(wèn)題,目前已經(jīng)在Go 1.21中提供了“預(yù)覽版”解決方案。此外,Go 1.21還添加了新的標(biāo)準(zhǔn)庫(kù),包括用于結(jié)構(gòu)化日志記的log/slog包,用于對(duì)任何元素類(lèi)型的切片進(jìn)行常見(jiàn)操作的slices包,用于對(duì)任何類(lèi)型key-value進(jìn)行常見(jiàn)操作的maps包,以及用于比較有序值的cmp包。在性能優(yōu)化方面,Go編譯器本身已經(jīng)在1.21就PGO進(jìn)行了重建,因此構(gòu)建Go程序的速度提高了2-4%,但具體的優(yōu)化效率將取決于主機(jī)架構(gòu)。最后,Go 1.21已實(shí)驗(yàn)性支持WebAssembly System Interface(WASI),并為了方便編寫(xiě)更通用的WebAssembly(WASM)代碼,編譯器還支持從WASM主機(jī)導(dǎo)入函數(shù)的新指令:go:wasmimport。
關(guān)鍵詞:
版權(quán)與免責(zé)聲明:
1 本網(wǎng)注明“來(lái)源:×××”(非商業(yè)周刊網(wǎng))的作品,均轉(zhuǎn)載自其它媒體,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé),本網(wǎng)不承擔(dān)此類(lèi)稿件侵權(quán)行為的連帶責(zé)任。
2 在本網(wǎng)的新聞頁(yè)面或BBS上進(jìn)行跟帖或發(fā)表言論者,文責(zé)自負(fù)。
3 相關(guān)信息并未經(jīng)過(guò)本網(wǎng)站證實(shí),不對(duì)您構(gòu)成任何投資建議,據(jù)此操作,風(fēng)險(xiǎn)自擔(dān)。
4 如涉及作品內(nèi)容、版權(quán)等其它問(wèn)題,請(qǐng)?jiān)?0日內(nèi)同本網(wǎng)聯(lián)系。