BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Ruby性能大比拼:最新Great Shootout结果公布,二进制MRI速度减半

| 作者 Werner Schuster 关注 9 他的粉丝 ,译者 李明(nasi) 关注 0 他的粉丝 发布于 2008年12月23日. 估计阅读时间: 3 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

Ruby实现之间的竞争从未结束,尤其在性能上。一年以前,Antonio Cangiano启动了Great Ruby Shootout,比较了1.8.6、1.9.0、JRuby、Rubinius以及已经被废弃的Ruby.NET实现。

现在,Antonio发布了Great Ruby Shootout 2008,比较了1.8.6、1.9.1、JRuby、Rubinius、Ruby商业版、IronRuby,以及最新加入的MagLev。

一定要记得,对于基准测试,要持有怀疑态度,这一点在Antonio身上再次得到验证。Antonio发现了首次运行时的一些问题,并公布了修正后的版本,对一些结果进行了修正。他发现的问题之一,是关于Debian的包管理系统中的Ruby版本:

如果你通过apt-get方式来安装Ruby的话,我得给你一个大大的警告。如果从源代码编译的话,你会发现速度翻倍了,这是通 过这些测试检测出来的。我以为只是10~20%的提升,结果却是100%。其原因在于,打包好的Ruby使用了--enable-pthreads进行编 译,这样会有“共享库 vs 静态库”的问题。

Prashant Srinivasan先前已经提及过--enable-pthread的问题,并解释了它会拖慢系统的原因。

基准测试还显示出,在Windows上的Ruby 1.8.x运行速度仅有(从源代码编译的)在Linux上运行Ruby 1.8.7速度的一半。

目前可用的Ruby实现中,最快的要数Ruby 1.9.1了,而JRuby 1.1.6RC1则紧随其后。从基准测试中可以看出,JRuby似乎是目前执行Ruby 1.8.x代码的最快方式了。

而其他的Ruby实现,如Rubinius和IronRuby,依然比MRI慢很多。基于Ruby 1.9的MacRuby 0.3也稍稍慢了些,然而似乎它还没有为生产做好准备,生产版本将会是下一个发布版(MacRuby 0.4预计将会在年底发布)。

MagLev的结果也兑现了他们的承诺,很多基准测试都要比MRI快很多,但还有一些比较慢。长远来看,MagLev还是一个相当年轻的项目,今年年初才蹒跚起步。

最后要说明重要的一点。Great Ruby Shootout所使用的基准测试的代码是由众多小测试构成的,用于测试Ruby和Ruby运行时的各个独立的特性。就此,Antonio解释说:

很多人对受测VM能为Ruby on Rails开发栈带来的改进更感兴趣。不要假定如果VM A比VM B快三倍,那么Rails在每分钟处理的请求数也会多三倍。这不可能。只是说,一个更快的VM是一个好消息,无疑可以对生产环境的Rails应用产生积极的影响。

在InfoQ的采访中,Antonio解释了更多真实的基准测试的需求,并指出他建立Ruby基准测试套件项目正是出于此意图。

查看英文原文:Ruby Performance: Great Shootout Results And A Discovery About Binary MRI vs Source Compiled MRI

评价本文

专业度
风格

您好,朋友!

您需要 注册一个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