跨平台的 .NET 運行環境 Mono 3.2 新特性


Mono 3.2 發布了,對 Mono 3.0 和 2.10 版本的支持不再繼續,而且這兩個分支也不再提供 bug 修復更新。

Mono 3.2 主要新特性:

  • LLVM 更新到 3.2 版本,帶來更多的編譯優化
  • 默認使用 SGen Garbage Collector 垃圾收集器,提供3種新的實驗模式:Low pause mode、Low promotion nursery、Mostly precise stack scanning;
  • FullAOT編譯器生成更優化的代碼
  • Mono 3.2 基礎類庫可構建完整 Xamarin 的移動 profile
  • 降低編譯后的文件包大小(對比3.x系列版本,尺寸縮減並不明顯)
  • 性能提升
    • 解析性能大大增長
    • LINQ查詢更快
    • 大對象的克隆和裝箱速度提升兩倍
    • 優化Marshal.Read/Write方法

詳細介紹請看發行說明

上面的ppt需要翻牆觀看,所以把這個ppt的內容和大家分享下,請看下面的截圖:
image
這張PPT介紹的是Mono 3.2的內容已經覆蓋桌面、服務器和移動端,支持.NET 4.5的核心功能包括基礎類庫和c# 5.0 .對 Mono 3.0 和 2.10 版本的支持不再繼續,而且這兩個分支也不再提供 bug 修復更新, 如果是新部署的Mono環境可以考慮直接使用Mono 3.2版本了,這是一個正式發布的版本,從2.10.8到3.2 已經持續開發了2年的時間,中間經歷好多的beta測試版本。
image
Mono 3.2版本有很多改變,這是一個完全成熟的.NET框架,包括垃圾回收器方面得到極大的提升,現在默認的GC實現稱為SGen(Simple Generational),除此之外的選擇還有Boehm(http://jezng.com/2012/02/How-the-Boehm-Garbage-Collector-Works/),Boehm GC的基本思想是在malloc()時記錄分配空間的元信息,然后在數據中保守地檢查每個可能為指針的整數。其好處是只要截malloc()和free()兩個接口即可,因此可被用於uncooperative環境(即C/C++這種指針和整數界限模糊的情況),缺點是由於做法保守可能會有垃圾無法被回收。另外Boehm中對象不能被移動,所以會有fragmentation。SGen的主要思想是將對象分為兩個generation:較新的稱為generation 0,較老的稱為generation 1。這種設計是基於這樣的一個事實:程序經常會申請一些小的臨時對象,用完了馬上就釋放。而那些一段時間沒釋放的,往往很長時間都不會釋放,如全局對象等。基於這個原則,SGen將GC分兩個階段:minor collection和major collection,分別用於回收nursery heap和major heap中的內存。
image
image
image
image
image
Mono 3.2 對移動開發方面也是有很多的改進,這部分主要是涉及到Android和ios上開發
image
image
Mono 3.2里頭還包含了很多微軟開源的框架:
image
image
 
Mono 3.2 跨平台框架方面的內容:
image
image
image
image
image
image
后面的還有20張ppt是講Mono項目團隊正在做的事情,也有很多激動人心的特性:
 
image
image
image
  image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM