【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

MacRuby 0.5 将引入基于 LLVM 的 VM,性能提升明显

  • 2009-03-31
  • 本文字数:886 字

    阅读完需:约 3 分钟

MacRuby 0.4 的发布引入了一个全新的图形库,并进行了一些改进,比如线程化 GC。在此之后,下个版本的 MacRuby 的重点将会是性能方面的改进。

有篇博文解释了在一个试验性的 MacRuby 分支上,全新的 VM 采用了 LLVM,从而替换掉了 YARV

全新的 VM 直接将解析器中的抽象源代码树(AST)转换成 LLVM 的中间表示(IR),再将其编译为优化过的机器码。还有大量 的关键性优化业已完成,例如更快的 fixnum 数学运算、缓存的方法分派、零成本的 IA64 异常、更快的实例变量访问、常量缓存、更快的 break/next、更轻量级的本地变量和尾部调用优化等等。

新 VM Roxor 的源代码已经在一个试验性的 SVN 分支之上。compile_node 方法通常会取得 Ruby AST 并转换成 LLVM 指令,这些指令可能是原语,也可能是 Ruby 运行时的调用。

因为 MacRuby 是基于 Ruby 1.9.1 的,引入试验性 VM 或者对 Objective-C 类型的使用等修改可能会导致兼容性问题。为了确保兼容性,MacRuby 集成了 RubySpec(博文中有所提及):

当前的试验性分支已经可能可以通过大部分的语言规格,而这是我们回归测试套件的一个标准部分。我们也一直在更新规格,以便可以跟上 Ruby 1.9 的步伐。

RubySpec 是一个可执行的规格,用于定义 Ruby 实现的行为,最早由 Rubinius 项目所发起。

Antonio Cangiano针对 MacRuby 的试验性版本对一些语言特性进行了评测,与 MRI 和标准 1.9.1 相比,取得了很不错的成绩。在将来的版本中,究竟其性能还能提升多少,目前尚不可知。Antonio 还指出了 MacRuby 的一些优势:

较之 Objective-C 和 Ruby 的混合(例如 RubyCocoa 的桥接),开发者可以使用 MacRuby 来与 Mac OS X 的核心技术相集成,并将其作为 Objective-C 的替换语言。确切地说,Objective-C 的运行时和世代垃圾回收器是 MacRuby 的核心。 但是从 API 的角度来看,开发者可以使用 Ruby 来编写代码,而不是使用更加繁琐和低级的 Objective-C。

考虑到 GUI 程序库长长的列表和 Ruby 的抽象能力,面向 OS X 的开发者可以简洁地使用 MacRuby 来构建应用,并紧密地与 Cocoa 程序库相集成,来代替 Objective-C。

查看英文原文: MacRuby 0.5 Will Have Faster VM Based on LLVM

2009-03-31 01:161331
用户头像

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

关注

评论

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

2021年11月云主机性能评测报告

博睿数据

云主机 博睿数据 数据链DNA

想给用户天涯若比邻的体验?业务全球化面临的三重挑战

声网

网络

从实习到秋招成为一名安全工程师,我经历了什么

网络安全学海

面试 网络安全 信息安全 渗透测试 WEB安全

构建信创基础软硬件共同体,DataPipeline与中科曙光完成产品兼容互认证

DataPipeline数见科技

大数据 中间件 服务器 数据融合

缓存数据的淘汰之路(中)

卢卡多多

缓存 28天写作 签约计划第二季 12月日更

百万级 QPS 业务新宠,金山办公携手 Apache APISIX 打造网关实践新体验

API7.ai 技术团队

云原生 API网关 wps API Gateway Apache APISIX

架构实战营模块一学习总结

Evan

架构实战营

自定义View:如何实现点击图标旋转的动画效果

Changing Lin

12月日更

缓存数据的淘汰之路(上)

卢卡多多

28天写作 签约计划第二季 12月日更

2600亿!全球最大中文单体模型鹏城-百度·文心发布

百度大脑

人工智能

你以为Vue3封装一个弹框组件很简单?

CRMEB

云ERP系统究竟是什么?

低代码小观

流程管理 ERP 业务流程管理 业务流程自动化

博睿数据携手火山引擎,共建新云新未来

博睿数据

Gartner预测全球人工智能软件市场将在2022年达到620亿美元规模

WorkPlus

缓存数据的淘汰之路(下)

卢卡多多

缓存 28天写作 签约计划第二季 12月日更

Veritas:2022年数据安全及合规领域行业预测

WorkPlus

FPGA大发展!现在或许是从事FPGA行业的最好时代

科技新消息

斟茶兵——远程进程管理

白粥

进程管理 运维开发 系统维护 离职交接 日常工作

EMQ 映云科技走进高校,与浙大城市学院联合促进物联网人才培养

EMQ映云科技

物联网 mqtt

一周信创舆情观察(11.29~12.5)

统小信uos

Python Qt GUI设计:菜单栏、工具栏和状态栏的使用方法(拓展篇—2)

不脱发的程序猿

Python qt GUI设计 Qt Creator 菜单栏、工具栏、状态栏

PackML从会到不会——状态、管理标签(5)

陈的错题集

标准化 PackML

Python代码阅读(第69篇):首字母大小写变换

Felix

Python Code 字符串 阅读代码 Python初学者

普华基础软件加入龙蜥并成为理事单位,共创开源操作系统新生态

OpenAnolis小助手

龙蜥社区

基于云的技术架构设计实践-第5篇

hackstoic

数据分析 云原生 数据可视化 业务分析 签约计划第二季

ONES X 蓝城兄弟|有机的研发管理改进是最健康的颠覆

万事ONES

项目管理 ONES 项目管理工具

如何验证你的产品创意?

石云升

产品思维 28天写作 12月日更

Cypress 基础 - 元素的定位

Jerry Wang

CSS html Cypress 28天写作 12月日更

探索圈外的世界 | GTLC 全球技术领导力峰会·厦门站圆满收官

TGO鲲鹏会

区块链 方法论 技术管理 GTLC

架构实战营模块一作业

Evan

架构实战营

使用 HTML、CSS 和 JavaScript 制作的随机密码生成器

海拥(haiyong.site)

JavaScript 密码 28天写作 签约计划第二季 12月日更

MacRuby 0.5将引入基于LLVM的VM,性能提升明显_Ruby_Werner Schuster_InfoQ精选文章