跨平台的 .NET 运行环境 Mono 3.2 新特性

时间:2022-09-06 19:05:20

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需要FQ观看,所以把这个ppt的内容和大家分享下,请看下面的截图:
跨平台的 .NET 运行环境 Mono 3.2 新特性
这张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测试版本。
跨平台的 .NET 运行环境 Mono 3.2 新特性
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中的内存。
跨平台的 .NET 运行环境 Mono 3.2 新特性
跨平台的 .NET 运行环境 Mono 3.2 新特性
跨平台的 .NET 运行环境 Mono 3.2 新特性
跨平台的 .NET 运行环境 Mono 3.2 新特性
跨平台的 .NET 运行环境 Mono 3.2 新特性
Mono 3.2 对移动开发方面也是有很多的改进,这部分主要是涉及到Android和ios上开发
跨平台的 .NET 运行环境 Mono 3.2 新特性
跨平台的 .NET 运行环境 Mono 3.2 新特性
Mono 3.2里头还包含了很多微软开源的框架:
跨平台的 .NET 运行环境 Mono 3.2 新特性
跨平台的 .NET 运行环境 Mono 3.2 新特性
Mono 3.2 跨平台框架方面的内容:
跨平台的 .NET 运行环境 Mono 3.2 新特性
跨平台的 .NET 运行环境 Mono 3.2 新特性
跨平台的 .NET 运行环境 Mono 3.2 新特性
跨平台的 .NET 运行环境 Mono 3.2 新特性
跨平台的 .NET 运行环境 Mono 3.2 新特性
跨平台的 .NET 运行环境 Mono 3.2 新特性
后面的还有20张ppt是讲Mono项目团队正在做的事情,也有很多激动人心的特性:
跨平台的 .NET 运行环境 Mono 3.2 新特性
跨平台的 .NET 运行环境 Mono 3.2 新特性
跨平台的 .NET 运行环境 Mono 3.2 新特性
 跨平台的 .NET 运行环境 Mono 3.2 新特性