Go 1.3正式版發布

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

6月18日,在Go 1.2發布六個月之後,Go官方宣布正式發布Go 1.3。Go 1.3並沒有引入新的語言功能,只是進行了功能改進,並修複了一些bug以及使用者的反饋。新的版本開始支援DragonFly BSD、Solaris、Plan 9和Google的NaCl( Native Client),且顯著改進了連結器和編譯器。低版本的Go語言使用者無需更改任何代碼即可升級到Go 1.3。


Go語言是由Google開發的一個開源項目,目的之一是為了提高開發人員的編程效率。Go語言的並行機制使其很容易編寫多核和網路應用,而重新設計的的類型系統允許構建有彈性的模組化程式。Go語言可以快讀編譯為機器碼,同時具有高效的記憶體回收和強大的運行時反射。它是一門快速的、靜態類型的編譯語言,但是感覺上卻是動態類型的解釋型語言。


Go 1.3仍在向承諾的目標(更快、更簡單)前進,主要改進包括:

  1. 改進了記憶體模型。在緩衝的channel發送和接收資料時增加了一條規則,使緩衝的channel可以被用作一個簡單的號誌(Semaphore)。

  2. 不再支援Windows 2000。微軟在2010年時就不再支援Windows 2000,現在Go 1.3也放棄對它的支援。

  3. 支援BSD和Solaris系統。Go 1.3開始支援DragonFly BSD、FreeBSD、NetBSD、OpenBSD、Plan 9、Solaris,但對這些系統的支援都有一些其他特殊要求,比如對FreeBSD的支援必須要求核心編譯時間配置COMPAT_FREEBSD32參數。

  4. 支援 Native Client 虛擬機器架構。Go 1.3既可以在32位Inter架構處理器上( GOARCH=386 )運行,也能在64位Intel架構上運行,但是在64位架構上使用的是32位pointer,對於ARM架構暫不支援。關於Native Client的介紹可以閱讀其官方介紹。

  5. 改進了棧的實現方式。將棧實現方式從分段(segmented)模型改為連續(contiguous)模型。當一個goroutine( Go 語言提供的一種使用者態線程)需要更多的棧空間且超過了可用大小時,棧會被轉移到一個單獨的更大的記憶體塊。

  6. 改進了記憶體回收機制。Go已經在堆上實現了精準的記憶體回收,Go 1.3增加了棧上的記憶體回收。另外,GC的速度也得到了提升,現在採用的是並發清除演算法,可以縮短50-70%的GC停機時間。

  7. 重構了連結器。對連結器和編譯器進行了重構,連結器仍然是使用C語言編寫,但是指令選擇階段被移入到編譯器中並建立了一個新的包liblink。指令選擇只會在程式包被編譯時間執行一次,所以這這樣可以加快大幅度提升大工程的編譯速度。

  8. 其它的一些改進。比如實現了新的Regex引擎、更快的race detector、預設棧的大小從8K變為4K 位元組、資源競爭的檢測快了40%、增加了很多新參數等。


讀者可以在這裡下載Go 1.3。詳細的改進說明可以閱讀官方文檔。不能翻牆的使用者可以使用社區提供的鏡像來下載。


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.