写点什么

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:161589
用户头像

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

关注

评论

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

解读TinyEngine低代码引擎2.0,如何改变前端二次开发模式

华为云开发者联盟

低代码 #开源 OpenTiny TinyEngine AI 基础设施

从开发者工具转型 AI 呼叫中心,这家 Voice Agent 公司已服务 100+客户

声网

基于事件驱动构建 AI 原生应用

阿里巴巴云原生

阿里云 云原生

零代码构建AI Agent,解读华为云AI原生应用引擎的架构与实践

华为云开发者联盟

大模型 AIGC AI Agent AI 基础设施

百度副总裁陈洋:开发全流程进入智能体时代,又快又好又安全

百度安全

【连载 03】Java 线程池(上)

FunTester

AI宠物APP开发的主要功能

北京木奇移动技术有限公司

AI应用 AI智能体 AI宠物

纯血鸿蒙进程加速,混合app开发迎来又一波新机会

FinFish

混合应用开发 跨端开发 鸿蒙应用开发 纯血鸿蒙 混合app开发

改变仿真游戏规则,Altair的AI与HPC技术创新仿真之路

Altair RapidMiner

数据分析 仿真 CAE #人工智能 altair

Spring AI Alibaba 配置管理,用 Nacos 就够了

阿里巴巴云原生

阿里云 云原生

企业如何挑选OKR目标管理软件?9款工具功能全面分析

易成研发中心

Supersonic 平台上线Top Creatives Library 功能,为手游开发者打造广告投放素材库

极客天地

通义灵码融入南京大学 AI 编程创新课,与高校数字化创新人才培养同行

阿里云云效

阿里云 云原生

揭秘UGO SQL审核功能4大特性,让业务平滑迁移至GaussDB

华为云开发者联盟

GaussDB UGO SQL审核 #SQL

浅谈YashanDB三权分立

YashanDB

数据库 yashandb 崖山数据库 三权分立

观测云集成 Lark SSO 最佳实践

观测云

SSO

在华为开发者空间,基于鲲鹏服务器快速开发打砖块小游戏

华为云开发者联盟

服务器 鲲鹏云 web 开发

他们用AI,为另外一群人做了双“眼睛”

华为云开发者联盟

modelarts 开发板 昇思MindSpore AI 基础设施

英特尔打造企业AI一体化方案,贯穿客户需求源头和终点

E科讯

YashanDB 开机自启

YashanDB

数据库 yashandb 崖山数据库 开机自启

首个被人类骗钱的 AI 诞生;微信公众号后台新增「AI 配图」功能丨 RTE 开发者日报

声网

通义灵码融入南京大学 AI 编程创新课,与高校数字化创新人才培养同行

阿里巴巴云原生

阿里云 云原生

华为技术专家出品,《华为开发者空间案例指南》带你玩转云上20+场景应用开发

华为云开发者联盟

#Serverless 鲲鹏计算 AI 基础设施

AI集成效率提升:10大最佳机器学习API

幂简集成

机器学习 API

如何做好团队文档管理

易成研发中心

文档管理 文档管理软件

如何做到供给侧管理与需求侧管理有机结合

易成研发中心

需求管理 需求管理工具

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