InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

Mono:超越标准

作者 Jonathan Allen 译者 张龙 发布于 2008年11月9日

领域
架构 & 设计,
语言 & 开发
主题
Mono ,
.NET ,
编程 ,
性能和可伸缩性 ,
游戏开发

从Mono 2.2开始,Jonathan Pryor的Mono.Options库就与运行时一起发布了。这个库本身并不那么惹人注意。虽然它确实很有用,尤其对于那些编写大量命令行应用的人来说更是如此,但它仅仅只是一个库而已。

然而它具有更深层的意义,Mono正在超越标准。Mono不再只是跟屁虫了,它正试图在很多地方超越CLR。作为一个开源项目,他们开发新库的速度要远远快于微软。他们不必事事亲为,相反可以使用一些成熟的项目,如Mono.Optionscollection library C5,并将他们包含在发布中。

在12月Mono 2.2的发布中最重要的一个增强就是对SIMD的支持。SIMD是一套CPU指令,可以极大地加快向量的操作。通过使用SIMD,用户就不必按照顺序对数组中的每个元素执行操作,他们可以使用SIMD指令处理包含16个元素之多的向量。下面列出的就是支持的类型。

  • Mono.Simd.Vector16b——16个无符号的byte
  • Mono.Simd.Vector16sb——16个有符号的byte
  • Mono.Simd.Vector2d——2个double
  • Mono.Simd.Vector2l——2个有符号64位的long
  • Mono.Simd.Vector2ul——2个无符号64位的long
  • Mono.Simd.Vector4f——4个float
  • Mono.Simd.Vector4i——4个有符号32位的int
  • Mono.Simd.Vector4ui——4个无符号32位的int
  • Mono.Simd.Vector8s——8个有符号16位的short
  • Mono.Simd.Vector8us——8个无符号16位的short

性能的改进是明显的。执行Spring-Gravity算法,一个本地的C++程序运行需要9.5秒。比较起来,Mono却需要17.7秒。但将标准的操作符转化为SIMD函数,Mono的运行时间一下子就降到了1.7秒。

那么人们使用Mono打算做什么呢?为Windows、XBox 360及iPhone编写游戏。你可以通过PDC 2008 video的第9频道了解更多。

查看英文原文:Mono: Going Beyond the Standard

译者 张龙 热衷于编程,乐于分享,对新技术有强烈的探索欲,对Java轻量级框架有一定研究。

hi 发表人 lu wenhua 发表于
  1. 返回顶部

    hi

    发表人 lu wenhua

    mono到了收获的时候了