BT

您是否属于早期采用者或者创新人士?InfoQ正在努力为您设计更多新功能。了解更多

Mono 3.8发布:性能进一步改进,可伸缩性提升

| 作者 Roopesh Shenoy 关注 0 他的粉丝 ,译者 臧秀涛 关注 0 他的粉丝 发布于 2014年9月11日. 估计阅读时间: 3 分钟 | ArchSummit社交架构图谱:Facebook、Snapchat、Tumblr等背后的核心技术

9月4日,Mono 3.8.0发布了。该版本的运行时带来了一些性能和可伸缩性方面的改进,同时完成了向Windows平台的移植。

Mono遵循Gnome和Linux内核的版本编号策略,这意味着3.8是3.6(已于上个月发布)之后的一个主要的稳定版本。该版本在性能方面有所改进:

  • JIT可以更好地处理除数为2的幂的long型的取余操作,生成的代码效果好很多。之前long型的取余操作不会像int类型那样特殊处理。(作为一种编译优化,通常2的幂的乘除运算会替换为移位操作。)
  • 对于只调用一次的委托,可以生成更快的代码。这对于诸如asyncLINQ等底层使用了委托的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平台的安装程序,我们必须从源代码构建出最新的二进制文件

MonoXamarin资助的一个项目,是微软的.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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT