1. 程式人生 > >Mono 3.8釋出:效能進一步改進,可伸縮性提升

Mono 3.8釋出:效能進一步改進,可伸縮性提升

9月4日,Mono 3.8.0釋出了。該版本的執行時帶來了一些效能和可伸縮性方面的改進,同時完成了向Windows平臺的移植。

Mono遵循Gnome和Linux核心的版本編號策略,這意味著3.8是3.6(已於上個月釋出)之後的一個主要的穩定版本。該版本在效能方面有所改進:

  • JIT可以更好地處理除數為2的冪的long型的取餘操作,生成的程式碼效果好很多。之前long型的取餘操作不會像int型別那樣特殊處理。(作為一種編譯優化,通常2的冪的乘除運算會替換為移位操作。)
  • 對於只調用一次的委託,可以生成更快的程式碼。這對於諸如asyncLINQ等底層使用了委託的C#特性幫助很大。
  • GC時間減少了5-10%。

社群對於Mono一個版本接一個版本的持續效能改進非常興奮。Richard Simpson總結到

Mono團隊釋出的版本真是讓人印象深刻。Mono最讓我震動的就是效能了。

該版本在除錯方面也有些改進,尤其是USB除錯。考慮到跨平臺移動開發是Mono的一個主要使用場景,這一改進很受歡迎。除錯有線協議(wire-protocol)現在可以更好地處理高延遲情況。客戶端庫也會激進地快取更多資訊。這會減少需要轉移的包的數量,進而減少除錯延遲。在使用Xamarin工具進行跨平臺移動開發時,這雙重變化會帶來更好的除錯體驗。

除此之外,還有很多Bug修復,涉及執行時、類庫、C#編譯器、MSBuild和偵錯程式,整體上改進了穩定性和效能。

釋出說明詳細列出了所有修改,感興趣的讀者可以參閱。

Mono 3.6並不支援所有平臺,特別是Windows和非Debian的Linux變種。Mono 3.8則支援更多Linux變種。釋出說明中提到,向Windows 64的移植也已經完成。不過Mono網站上尚未提供Windows平臺的安裝程式,我們必須從原始碼構建出最新的二進位制檔案

MonoXamarin資助的一個專案,是微軟的.NET框架的開源實現。它使得使用C#、F#和其他.NET語言進行跨平臺開發成為可能。Xamarin在Mono之上構建了跨平臺開發工具以及像Xamarin.Forms(可以使用跨平臺程式碼輔助建立原生的體驗)這樣的框架產品。開發工具和框架在開發者之間都有應用(Xamarin最近獲得了5400萬美元C輪融資,會繼續在這方面發力)。Xamarin也已經在和微軟開展合作,以改進.NET和Mono之間的相容性。ASP.NET vNext(尤其是

KRuntime)就是這一合作的成果之一;它在.NET和Mono執行時上都能很好地執行。