Mono 3.0添加了异步支持、改进的SGen垃圾收集器及其他特性

Miguel De Icaza已经宣布了Mono 3.0的发布,该版本带来了一些改进,如异步支持、更好的SGen垃圾收集器、改进的Eval API以及与.NET 4.5的兼容等。

Mono 3.0是对之前最新的稳定版本2.10的更新。有些新特性已经包含在今年早些时候的2.11.x预览版中了。值得注意的变化有以下几点:

  • 支持C#异步特性的编译器
  • 从微软的开源软件堆栈中集成了一些框架和库,其中包括ASP.NET MVC 4、ASP.NET WebPages、Entity Framework、Razor和System.Json
  • SGen现在是默认的垃圾收集器,为了更好地支持多处理器硬件引入了一些性能和可伸缩性改进
  • Eval() API目前能够编译完整的类型,而非仅支持表达式。编译器即服务(compiler-as-a-service)也不再是一个全局的编译器,而是可以在多个作用域内实例化
  • 对一些类型(如ThreadLocal 和List )的运行时优化
  • 引入了一些新的属性,支持出于性能调优考虑强制编译器内联代码
  • 在MacOS上可以编译为64位的二进制文件(尽管发行时只提供了32位二进制文件)
  • 改进了Soft Debugger,使用USB连接的设备时可以获得更好的性能
  • 在OS X上捆绑提供了F# 3.0
  • Mono中的SQLite数据库实现目前支持iOS的加密API,也允许以配置形式修改线程模型

关于变化的更多细节请参考发布说明。

Miguel指出,所有这些改进都应该在适当的时候支持MonoTouch与Mono for Android。他也暗示道,Mono的开发会以更快的发行速度为目标,所以重要的开发会在独立的分支中进行,然后再合并到主干分支中,以便保证在任何时候主干都尽量稳定。

使用Mono的开发者提出了一些一般性问题,其中一个是Mono一直缺乏一个跨平台的UI层——Mono团队当前的建议是在一组公共的核心功能集之上为每个平台构建一个原生接口。Miguel建议使用GTK#、Qyoto(Qt的C#绑定)或一个新的工具包Xwt。

在本文撰写之时,Mono 3.0只发布了支持OS X平台的二进制文件,而支持其他平台的二进制文件尚有待社区发布。不过读者可以自己从更新的源代码构建。

查看英文原文:Mono 3.0 Adds Async, Improves SGen GC and More

感谢李永伦对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至[email protected]。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

你可能感兴趣的:(Mono 3.0添加了异步支持、改进的SGen垃圾收集器及其他特性)