免费下载案例集|20+数字化领先企业人才培养实践经验 了解详情
写点什么

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

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

关注

评论

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

企业选择合适等保服务方案几点建议

行云管家

信息安全 等保 等级保护 等保测评

RAG-GPT实践过程中遇到的挑战

AI Inception

AIGC GPT LLM rag

一文教你如何调用Ascend C算子

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号2024年5月PK榜

IPQ9574, IPQ9554, and IPQ5322 Chips Performance Differences -WiFi 7 Solutions Technical Analysis

wifi6-yiyi

WiFi7 ipq9574

KaiwuDB 受邀出席中国智能化油气管道与智慧管网技术交流大会

KaiwuDB

#数据库

马自达EZ-6:合资模式2.0的先锋,电动化时代的领航者

Geek_2d6073

高性能MySQL实战(一):表结构

京东科技开发者

反射API与AOP:打造灵活的软件部署方案

技术冰糖葫芦

API Explorer API 文档 API 性能测试

蓝易云 - 云服务器哪个品牌比较好国外

百度搜索:蓝易云

云计算 服务器 云服务器 服务器租用 高防服务器

为何整个 AI 领域都朝着 AI Agents 这一方向发展?

Baihai IDP

AI LLM 白海科技 企业号 5 月 PK 榜 AI Agents

开源软件Greenplum突然关闭GitHub源码,数据仓库选型带来新变数

NineData

GitHub greenplum 404 开源数据仓库 无法访问

OpenIM Bot: 用LLM构建企业专属的智能客服

AI Inception

AIGC ChatGPT LLM rag

上海云管平台怎么样?客服电话多少?

行云管家

云计算 数字化 云管平台 上海

使用RAG-GPT集成智谱AI、DeepSeek快速搭建OpenAI Cookbook智能客服

AI Inception

AIGC GPT LLM rag

文献解读-群体基因组第二期|《中国人群中PAX2新生突变的检测及表型分析:一项单中心研究》

INSVAST

基因数据分析 生信服务 群体基因

pump做市机器人

区块链技术

DR6018S: Achieve 808Mbps Stable Long-Distance PTP Transmission at 1.5km with the IPQ6010 WiFi 6 Chipset

wallyslilly

IPQ6010

软件测试学习笔记丨Selenium 键盘鼠标事件ActionChains

测试人

软件测试

OpenHarmony XTS认证分享

Laval小助手

京东按关键字搜索商品API(jd.item_search)返回值技巧分享

技术冰糖葫芦

API Explorer API 文档 API 性能测试

发展数字金融,金融机构数据库升级从核心系统开始更为根本

Lily

公链开发:深入探索与未来展望

dappweb

#区块链# 公链开发

423世界读书日,探索「读书艺术」与「工作技能」提升

京东科技开发者

LLM 大模型学习必知必会系列(九):Agent微调最佳实践,用消费级显卡训练属于自己的Agent!

汀丶人工智能

人工智能 大模型 agent

使用RAG-GPT和Ollama搭建智能客服

AI Inception

GPT LLM rag Llama3

蓝易云 - ubuntu设置虚拟内存

百度搜索:蓝易云

ubuntu 服务器 云服务器 服务器租用 RAM

蓝易云 - MySQL如何优雅处理批量新增和更新?ON DUPLICATE KEY UPDATE用它!

百度搜索:蓝易云

MySQL Linux 运维 云服务器 美国服务器

蓝易云 - 源码编译tcpreplay,及使用方法

百度搜索:蓝易云

Linux 运维 云服务器 Tcpreplay pcap

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