【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

Rubinius 1.0 驾临

  • 佚名

  • 2010-05-26
  • 本文字数:2411 字

    阅读完需:约 8 分钟

长时间的等待之后,开发者终于迎来了 Rubinius 1.0 。项目团队花费了三年半的时间完成 1.0 版,并且提供了部分承诺的特性。Rubinius 极力向开发者宣传它的各种新特性,包括:

  • 支持大量的 Ruby 代码和流行的 C 插件:
    • Rails 3 和 2.3.5
    • Sinatra
    • sqlite3、mysql、nokogiri 和 yajl-ruby
    • 数不胜数的其他插件
  • 加速 Ruby 代码运行速度的 JIT 编译器。
  • 新一代的垃圾收集器。
  • 集成剖析器。

我们之前曾经报道过 Rubinius,例如在 RubyConf 2009 上采访 Evan Phoenix 并且询问项目的进展情况。我们也撰写了 Ruby 标准展望,其中 Brian Ford 阐述了 Rubinius 是如何紧紧和标准联系在一起的。时至今日,我们又采访了 Brian Ford 和 Evan Phoenix,就 Rubinius 1.0 现在和未来交换了意见。

既然 Rubinius 1.0 已经发布,我们希望知道这个发布版对于 Rubinius 的现在和未来意味着什么:

我们花费在 1.0 版的四年时间是非常值得的。你可以看到,在这四年中,我们不仅完成了一个能够和 1.8.7 兼容的 Ruby 运行时,而且还应用了加速动态语言的最新研究成果,这些成果包括新一代的垃圾收集器和集成的 JIT 编译器。我们希望尽可能地使用 Ruby 来编写代码,即便可能有一些性能损失。这是因为 Rubinius 是使用 ruby 来实现方法,而 MRI 是使用 C。但是,我们一直致力于性能的改进,这就是你所看到的 Ruby 和 C 在性能上的竞争情况。

和现存的 Ruby 框架兼容情况:

完全兼容。在以某种方式运行 Sinatra 程序的时候会出现一个诡异的 bug,不过现在我们已经解决了。我们会将用户反馈的任何框架相关的 bug 的优先级设置为最高,然后在下一版本中解决。

当我们询问 Rubinius 对现存 Ruby gems 支持问题的时候,他们说:

如果是纯 Ruby gem 的话,那么没有兼容性问题。我们也支持大量使用 C 扩展的 gem,例如 Nokogiri 或 Mongrel 等等。不仅如此,我们一直将一些并不支持的扩展移植到支持的 API 上。其实,有些 API 不能够支持的原因是这些 API 直接将某些结构体的指针暴露出来了,而这些结构体在 MRI 中被当做内部类使用。比如。RHASH() 支持开发者访问一个‘st’结构体指针,这个结构体被 MRI 用于实现 Hash 类。由于我们不用手动使用 st 来实现 Hash,所以不需要暴露这个指针。因此我们重写了 API,在提供相同功能的同时也避免了这些情况。

我们也听说 strings 在 Rubinius 的性能有下降。考虑到 strings 在 Ruby 程序中使用率非常高,我们希望能够知道现在 Rubinius 能够给我们带来什么,以及它的未来发展会是如何:

说所有的 string 性能都比 1.8.x 有下降是不准确的。String 的大部分方法性能都至少和 1.8 相当。仅仅是一部分性能较慢,例如 tr、gsub 和 unpack。我们现在非常积极地改进这些性能缓慢的方法。

性能问题一直是一个值得关注的话题。当 InfoQ 问到为何 Rubinius 是比其他 Ruby 实现,例如 MRI 1.8.x/1.9.x 和 MacRuby 更加值得选择的时候,他们回答道:

Rubinius 运行 Ruby 代码的速度极快,如果可以使用纯 ruby 代码实现的算法做基准测试的话,Rubinius 肯定稳居榜首。由于我们独特的 JIT 技术,我们能够提供比 MacRuby 更加优异的性能。这项技术能够高效地利用程序剖析信息,从而产生更加快速的机器代码。

开发者看到 Rubinius 性能较低的时候是因为 Rubinius 正在运行一些核心类的代码。我诚恳地请求开发者能够在我们的问题跟踪器中发布关于性能缓慢的报告,或者能够直接向#rubinius 反馈。每一个发布版都会着重解决性能问题,最终目标是Rubinius 的所有核心类方法的性能都要比1.8 中的要优秀。

Rubinius 是一个开源项目,它的发展和成功得益于活跃社区的贡献。社区给予 Rubinius 非常大的帮助:

我们非常高兴地看到我们开放的代码库也协助开发者持续为我们的项目做出贡献。并且,系统的绝大部分是使用 Ruby 实现,我们可以快速地增加和调试功能,然后提供给用户新的特性。

社区最大的好处就是它能够即时帮助我们测试代码以及发出反馈。这将帮助我们快速成长和克服困难。

当问到近期和远期分别可以对这个项目抱有什么期望的时候,他们回答说:

我们已经计划发布下一个 bug 修复版。1.0.1 将会在下周发布(5 月 24 日这周),并且会修正 1.0 版中很多 bug。

我们另一个高优先级的任务就是第一个新特性版本:1.1,它增加了调试器。我最近将大部分精力放在这个版本上,它很快就会发布。这个版本将调试器紧密集成在一起,我想用户会非常喜欢它的。

开发者可以在 Google Group 的 rubinius-dev 群中自由交流。

更多关于 Rubinius 的信息可以在 Rubinius 官方网站上找到,Rubinius 的源代码可以从 Github 代码库中下载。

查看英文原文: Rubinius Turns 1.0

2010-05-26 10:462126
用户头像

发布了 90 篇内容, 共 32.7 次阅读, 收获喜欢 5 次。

关注

评论

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

Native SQLite Manager for Mac(极简SQLite数据库管理器)v1.27.3激活版

iMac小白

一文搞懂设计模式—享元模式

Java随想录

Java 设计模式

第40期 | GPTSecurity周报

云起无垠

HTTP/1.1协议中的八种请求

百度搜索:蓝易云

云计算 Linux 运维 HTTP 云服务器

Things3 for Mac(日程和任务管理工具)v3.20中文免激活版

iMac小白

智能护航:人工智能引领软件测试新革命

测试人

人工智能 软件测试

大数据时代来了

小齐写代码

助力春节精准营销,火山引擎ByteHouse加速数据分析效率

字节跳动数据平台

数据库 大数据 云原生 数仓 企业号 2 月 PK 榜

终于有篇文章把后管权限系统设计讲清楚了

越长大越悲伤

Java spring 权限 权限控制 后台管理

多租户篇 | MatrixOne与MySQL全面对比

MatrixOrigin

数据库 分布式 云原生

AI虚拟数字人在线生成系统源码展示!

青否数字人

数字人

数字人直播SAAS系统源码部署的重要性,你知道吗?

青否数字人

数字人

数仓实践丨从CU入手优化HStore表

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 华为云GaussDB(DWS)

SmartZipper for Mac(专业压缩解压工具)v2.10激活版

iMac小白

Disk Graph for Mac(磁盘空间分析工具)v3.0.2激活版

iMac小白

极狐GitLab 16.9 重磅发布,赶快来 pick 你喜爱的功能吧~

极狐GitLab

Tower for Mac(强大的Git客户端)v10.4注册激活版

iMac小白

深入解析Python并发编程的多线程和异步编程

华为云开发者联盟

Python 多线程 开发 华为云 华为云开发者联盟

ubuntu安装指定版本:nodejs

百度搜索:蓝易云

Linux ubuntu 运维 Node 云服务器

Screen Recorder by Omi Mac(Omi录屏专家‬)v1.3.8激活版

iMac小白

GraphicConverter 12 for Mac(图片浏览器)v12.1.1(6434)中文激活版

iMac小白

Lights Out for Mac(扩展节能器)v3.2修复激活版

iMac小白

Spring Security权限控制框架使用指南

越长大越悲伤

Java Spring Boot spring security

从smallredbook.item_get_video看电商行业的发展趋势

技术冰糖葫芦

API 文档

抖音详情API:API请求格式与参数详解

技术冰糖葫芦

API 接口

CSS图像边框:Interop 2023的一个重点领域

南城FE

CSS 前端 图像边框

低代码平台运营效果评估模型:AICE

鲸品堂

低代码 企业号 2 月 PK 榜

站在大模型加速带,重新审视办公提效

飞桨PaddlePaddle

百度 百度飞桨 AI应用 文心大模型 飞桨星河社区

Tidy Up for Mac(重复文件查找清理工具)v6.0.4激活版

iMac小白

GM CHM Reader Pro for mac(CHM阅读器)v2.5.3激活版

iMac小白

朴素的DevOps价值观

华为云PaaS服务小智

软件开发 华为云

Rubinius 1.0驾临_Ruby_InfoQ精选文章