写点什么

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

2008 年 12 月 22 日

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

2008 年 12 月 22 日 09:431287
用户头像

发布了 80 篇内容, 共 15.6 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

机器学习笔记之:Matrix Matrix Multiplication

Nydia

婚恋交友软件开发

luluhulian

重磅发布 | 2021年OpenAtom XuperChain开源技术路径

开放原子开源基金会

区块链 百度 开源 开放原子开源基金会

史上最全的技术手册整理总结,编程小白都从这篇文章迅速成为大牛

孙叫兽

Java 前端 技术手册 开发文档

从零开始学Android!15个经典面试问题及回答思路,这原因我服了

欢喜学安卓

android 程序员 面试 移动开发

学习总结之HTML5剑指前端(建议收藏,图文并茂)

魔王哪吒

学习 程序员 面试 前端 2月春节不断更

驱动力读书笔记之四

张老蔫

28天写作

大作业2-知识总结

arcyao

2 期架构师训练营 - 大作业(二)

Vicente

架构师训练营第2期

股票配资系统开发

v16629866266

产品 0 期 - 第四周作业

vipyinzhiwei

智慧社区服务平台,平安社区搭建

135深圳3055源中瑞8032

Python实现钉钉/企业微信自动打卡

sum56

Python python 爬虫 打卡

话题讨论 |互联网软件技术培训,靠谱吗?

不脱发的程序猿

程序员 程序人生 话题讨论 互联网培训 技术培训

期末大作业一

心在那片海

即使技术再精,面试时一问这个必挂!!

冰河

面试 类加载器 我要进大厂 Java类加载

智慧组工系统开发解决方案,组织部干部管理平台搭建

WX13823153201

智慧组工系统开发

区块链珠宝溯源平台,区块链溯源解决方案

135深圳3055源中瑞8032

架构师训练营结课作业

Rocky·Chen

百度网盘限速解决方案

孙叫兽

解决方案 百度网盘 限速

使用APICloud敏捷式开发总结,回顾开发一个完整APP过程。

孙叫兽

App 开发 APICloud

让人“眼前一亮、不明觉厉”的互联网技术PPT

不脱发的程序猿

程序人生 PPT 2月春节不断更 互联网技术PPT 互联网工具

阿里架构师经验分享!写给互联网大厂员工的真心话,最全的BAT大厂面试题整理

欢喜学安卓

android 程序员 面试 移动开发

OpenCV简介及其工程应用-游戏色块检测

行者AI

OpenCV

Elasticsearch multi-index 搜索

escray

elastic 日更挑战 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

原子设计:如何设计组件体系

欧雷

前端开发 组件化 组件设计原则 交互设计

广西党建智慧平台方案,智慧组工信息化建设

135深圳3055源中瑞8032

程序员养家活口接私活必备网站(顺便用技术改变世界)

孙叫兽

程序员 网站 私活

2020年末总结,脚踏实地,一步一个脚印——致敬自己一年的心酸历程

孙叫兽

孙叫兽 年度报告

“五年饮冰,难凉热血”,一名专科生的求学历程

不脱发的程序猿

程序人生 心路历程 2月春节不断更 大学总结 2020年度总结

大作业1-同城快递业务系统设计

arcyao

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