【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

Rubinius 1.0 兼容 MRI 1.8 且速度与之相当

  • 2009-12-08
  • 本文字数:1225 字

    阅读完需:约 4 分钟

Rubinius,“Ruby 程序员的 Ruby”终于要发布 1.0 版本了。 1.0 版本关注于运行真实应用程序所需的兼容性,性能方面要与 MRI 1.8 不相上下,同时也注重代码质量。

Rubinius 的主要开发者 Evan Phoenix 向 InfoQ 透露了为何该版本如此重要以及它所包含的内容。

1.0 才是我们从 Rubinius 开始之时就一直在做的版本。我们希望能兼容 1.8 并且在性能上与之相近。因为强制遵循 RubySpec,我们目前的兼容性已经很高了。 在速度方面,Rubinius 在很多东西上的速度都已经数倍于 1.8 了。我们力争让所有实现核心类的 Ruby 代码运行起来和 1.8 实现中的 C 代码一样快。在这块我们做的很好,但核心类在某些情况下很有可能会比 1.8 慢。

我们得到了一些来自外部的报告,一些真实的代码在 Rubinius 下要更快些。显然这些结论无法说明 1.0 的所有代码都是如此,但至少能证明我们正在接近这一目标。

Rubinius 能够使用 LLVM(Low Level Virtual Machine)编译器来构建本地代码。请注意,这个特性在 RC1 中默认是关闭的。

LLVM 很棒。在 1.0-rc1 中,你需要在配置时传入–enable-llvm 来构建带有 LLVM 的 Rubinius。在 rc2 时,我们可能会有所改变,默认加入 LLVM,同时如果用户觉得不需要 LLVM,也能选择去除它。 如果在编译时加入 LLVM,会默认开启 JIT,自动将多次运行的方法编译成机器码。我们从 LLVM 中得到了很好的输出,尤其是在使用我们的性能剖析器的时候。它告诉我们哪些方法比较常用,并将之内联进来以提高性能。

Rubinius 早期的关注点集中在完整性方面,这为我们带来了 RubySpec 。现在的焦点是切换到了性能上,还是依旧在完整性上呢?

两者我们都会关注。过去主要是关注完整性,过去的一年里,我们在性能上也投入了不少精力。LLVM 就是一个很直接的产出,而且它带来的回报很高。 Rubinius 的性能越来越好了。在微型基准测试中,我们的结果数倍于 1.8(有的甚至高达几百倍)。但我们知道微型基准测试的结果不能用于真实世界的代码中。为此,我们会查看来自世界各地的结果,有些用户反馈说速度有数倍提升,有的反馈速度差不多,也有报告速度很慢的。

我们目前比较关注那些性能较差的地方。我们做了不少工具帮助隔离并修复性能问题,比方说性能剖析工具。

为了改善性能,我们先着手改善 Ruby 代码本身。这方面还有很长的路要走,优化算法、修正低效代码。

JIT 的改进是另一个改善性能的主要工具。告诉 JIT 如何更有效地将 Ruby 代码编译为机器码是很有收获的事,我们一直在做这方面的工作。

除了性能与兼容性方面的提升,Rubinius 在别的方面也有改进,例如遗漏 end 的错误报告

下面这个问题可能是最有意思的:Rubinius 1.0 能运行 Rails 吗?

当然!在 rc2 里我们应该可以运行 Rails 2.3.5 和 Rails 3。 12 月底会放出 1.0-rc2,人们正好有时间在假期里玩玩。

可以从 Rubinius 的网站上下载到 1.0 的第一个候选版本。现在就来测试一下你 1.8.6 的代码并报告你发现的问题吧。

查看英文原文: Rubinius 1.0 Brings MRI 1.8 Compatibility and Near Speed Parity

2009-12-08 09:451223
用户头像

发布了 135 篇内容, 共 58.7 次阅读, 收获喜欢 43 次。

关注

评论

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

Markdown文本写作软件 Ulysses for Mac

展初云

markdown Mac软件 写作软件

邯郸学院软件学院软件工程专业教师参加“火焰杯”软件测试颁奖

测试人

软件测试

手机端侧文字识别:挑战与解决方案

合合技术团队

人工智能 技术 手机 识别

是时候了!MySQL 5.7 的下一站,不如试试 TiDB?

TiDB 社区干货传送门

MySQL Command Line Client登录 及系统设置

小齐写代码

京东小程序平台助力快送实现跨端 | 京东云技术团队

京东科技开发者

小程序 ide 跨端 企业号10月PK榜

TiDB 社区第三届 1024 程序员心愿节|你的心愿,我来实现,人均带着一个礼物的时刻到啦!

TiDB 社区干货传送门

注释在编程中的重要性:理解程序员的两难选择

小魏写代码

专业屏幕录像软件推荐 Apeaksoft Screen Recorder免激活中文

mac大玩家j

录屏软件 Mac软件 屏幕录制软件

实用的数据集成方式

RestCloud

数据同步 ETL 实时数据

SMT组装工艺流程的应用场景

华秋电子

SMT

把您的 PCB 艺术品带来 KiCon 吧:SAO Hat 作品招募中

华秋电子

kicad

多模态GPT-V出世!36种场景分析ChatGPT Vision能力,LMM将全面替代大语言模型? | 京东云技术团队

京东科技开发者

人工智能 LLM模型 企业号10月PK榜 GPT-V

页面查询多项数据组合的线程池设计 | 京东云技术团队

京东科技开发者

线程池 分页查询 企业号10月PK榜 数据组合

Mac平台好用的文件对比工具 Beyond Compare 4

展初云

Mac软件 Beyond Compare 4 for Mac 文件对比工具

软件依赖管理-源码依赖、接口依赖、服务依赖

laofo

DevOps cicd 研发效能 持续交付

火山引擎DataTester:AB测试技术揭秘及应用分享

字节跳动数据平台

大数据 ab测试 对比实验 数字化增长 企业号10月PK榜

Elasticsearch向量检索的演进与变革:从基础到应用

汀丶人工智能

自然语言处理 Elastic Search 语义搜索系统 向量搜索

小间距LED显示屏的技术优势有哪些?

Dylan

LED显示屏 全彩LED显示屏 led显示屏厂家 户内led显示屏

PCB打板省钱小妙招,强烈建议收藏!

华秋电子

PCB

互动直播双11大促开启!!!快来! | 京东云技术团队

京东科技开发者

互动直播 数字人 企业号10月PK榜 AI直播

基于 Apache Kyuubi 实现分布式 Flink SQL 网关

网易数帆

大数据 flink 开源 Apache Kyuubi

MacOS系统设置一键切换开关 One Switch

展初云

Mac软件 一键开关

CNCF即将推出平台成熟度模型丨亮点导览

SEAL安全

运维 成熟度模型 企业号10月PK榜

Lightroom Classic 2024 for Mac(摄影后期照片编辑工具) v13.0.1中文激活版

mac

照片编辑软件 苹果mac Windows软件 Lightroom Classic lrc

软件测试|计算机系本科生获“火焰杯”软件测试高校就业选拔赛一等奖

霍格沃兹测试开发学社

Dash for Mac(浏览API文档、管理代码片段)

晴雯哥

Flink OLAP 在字节跳动的查询优化和落地实践

Apache Flink

大数据 flink 实时计算

AI干货大FUN送!程序员节来AI Show“集市”行乐

飞桨PaddlePaddle

AI 程序员节

软件测试|火焰杯”软件测试高校就业选拔赛获奖名单揭晓,我院两名学子上榜,奖金2万元!

霍格沃兹测试开发学社

第2期 | GPTSecurity周报

云起无垠

Rubinius 1.0兼容MRI 1.8且速度与之相当_Ruby_Mirko Stocker_InfoQ精选文章