9月4日,Mono 3.8.0發布了。該版本的運行時帶來了一些性能和可伸縮性方面的改進,同時完成了向Windows平臺的移植。
Mono遵循Gnome和Linux內核的版本編號策略,這意味著3.8是3.6(已于上個月發布)之后的一個主要的穩定版本。該版本在性能方面有所改進:
- JIT可以更好地處理除數為2的冪的long型的取余操作,生成的代碼效果好很多。之前long型的取余操作不會像int類型那樣特殊處理。(作為一種編譯優化,通常2的冪的乘除運算會替換為移位操作。)
- 對于只調用一次的委托,可以生成更快的代碼。這對于諸如async和LINQ等底層使用了委托的C#特性幫助很大。
- 運行時有了一個新的可以并發讀的hashtable,有助于提升可伸縮性。
- 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平臺的安裝程序,我們必須從源代碼構建出最新的二進制文件。
Mono是Xamarin資助的一個項目,是微軟的.NET框架的開源實現。它使得使用C#、F#和其他.NET語言進行跨平臺開發成為可能。Xamarin在Mono之上構建了跨平臺開發工具以及像Xamarin.Forms(可以使用跨平臺代碼輔助創建原生的體驗)這樣的框架產品。開發工具和框架在開發者之間都有應用(Xamarin最近獲得了5400萬美元C輪融資,會繼續在這方面發力)。Xamarin也已經在和微軟開展合作,以改進.NET和Mono之間的兼容性。ASP.NET vNext(尤其是KRuntime)就是這一合作的成果之一;它在.NET和Mono運行時上都能很好地運行。
查看英文原文:Mono Gets Further Performance, Scalability Improvements
查看中文原文: Mono 3.8發布:性能進一步改進,可伸縮性提升
文章列表