写点什么

MacRuby 0.5 Beta 增加 JIT、AOT、GCD 支持,删除 GIL

  • 2009-10-20
  • 本文字数:1077 字

    阅读完需:约 4 分钟

MacRuby 0.5 的首个 beta 版已经有了,目前仅适用于 Snow Leopard(MacOS X 10.6)机器。

InfoQ 就 MacRuby 的现状和未来采访了 MacRuby 的核心团队。

InfoQ MacRuby 的新 VM 是如何使用 LLVM 的?

MacRuby 按需编译所有东西(当代码需要实际运行时)。[LLVM] 位代码会在编译之前进行优化。

MacRuby 0.5 beta 的发布说明也提到了 LLVM 是在调用外部函数时用来生成存根的,因为这比在老版本的 MacRuby 里使用的 libffi 要来得快。

InfoQ:MacRuby Ahead-Of-Time(AOT)编译了部分 Ruby 标准库。这是为什么呢?

显然,这样做会使启动更快。我们使用 AOT 编译它们主要是为了测试 AOT 编译器。它们是作为主 rake 任务的一部分在生成的时候编译的。

InfoQ:对本地扩展(native extensions)的支持现在处于什么状态?

经过一些小的修改,我们可以使一些 C 扩展运行起来,比如说,ripper、digest、socket、zlib 等等。我们计划在将来的版本里完整地实现 MRI 的 C 扩展 API。

InfoQ:0.5 版的一个大改进是去掉了 GIL 。现在,这个实现已经有一段时间了,你的解决方案带来了哪些体验?

据我们所知,它没有带来任何显著的开销。启动一个线程的开销比之前稍微高一点,但之后大部分代码都能并行运行。 没有 GIL 的系统是让 MacRuby 成为真正的 Cocoa 开发平台的必要条件,因为桌面应用程序通常都会使用线程或者新近的 Grand Central Dispatch(GCD)。

InfoQ:MacRuby 允许使用 AOT 编译 Ruby 代码,那么,有没有可能不使用垃圾收集器,即能否仅仅使用 Objective-C 的引用计数内存管理?

不能。但我们正在考虑一种模式,在这种模式里,编译器将会生成自动释放池(autorelease pools),而运行库将不会使用 Autozone GC。如果你浏览邮件列表存档,就会看到最近在讨论这个话题。

上面提到的邮件列表讨论了如何模拟GC ,这对于在不支持Autozone GC 的平台上运行MacRuby 程序来说是至关重要的,比如说,iPhone。讨论里的另一个邮件解释了为什么把Autozone 移植到iPhone 上是不可行的,因为iPhone 版的Cocoa 是不认识GC 的。

MacRuby 0.5 的最终版本将会运行在 32 位和 64 位的 Leopard 和 Snow Leopard 上。

查看过去InfoQ 的MacRuby 报道,并开始0.5 版之旅吧。

查看英文原文: MacRuby 0.5 Beta Brings JIT, AOT, GCD Support, Removes GIL


译者介绍:李永伦,从 02 年开始关注.NET,读过 4 年工商管理,任过 3 届微软 MVP,最近恋上 Ruby,私底下喜欢研究哲学和心理学,酷爱动漫、科幻、科普和金庸武侠,爱好买书、读书和藏书。InfoQ 中文站内容团队,尤其是架构、SOA 和 Ruby 社区需要您的参与,有意者请邮件至 editors【AT】cn.infoq.com

2009-10-20 20:531017

评论

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

基于 DAG 任务编排实现

Bingo

Java DAG 任务编排 规则表达式

OpenAI 治理结构为什么可以罢免CEO Sam Altman面临怎样管理问题

B Impact

WebSocket是什么,怎么用?

百度搜索:蓝易云

云计算 Linux TCP 运维 websocket

探索容灾架构演进之路-从单点到异地多活

柠檬汁Code(binbin0325)

容灾 异地多活 备份 & 恢复 部署架构 同城双活

纯CSS动态渐变文本特效

南城FE

CSS 前端 动画 css3渐变 渐变

INFINI Labs 产品更新 | 发布 Easysearch Java 客户端,Console 支持 SQL 查询等功能

极限实验室

console Gateway 客户端 easysearch 极限科技

低代码平台技术分享官 | 漫话iGIX前端设计模式

inBuilder低代码平台

前端

向量数据库—加速大模型训练推理

不叫猫先生

大模型 向量数据库

PullTube for Mac(在线视频下载软件) 1.8.5.19中文直装版

mac

视频下载工具 苹果mac Windows软件 PullTube

JixiPix PuzziPix Pro for mac(强大的拼图软件)v1.0.18激活版

iMac小白

物联专栏丨云边协同技术加速AloT能力向边缘侧快速演进

inBuilder低代码平台

物联网

MacBook触控板窗口管理推荐 Swish免激活最新

胖墩儿不胖y

Mac软件 触控板管理工具

WordPress 基于亚马逊云的部署实践(三)- 服务部署

王坤祥

AWS WordPress Amazon EC2 亚马逊云

CnosDB有主复制演进历程

CnosDB

开源 时序数据库 CnosDB

万字长文:从 C# 入门学会 RabbitMQ 消息队列编程

快乐非自愿限量之名

C# 编程语言

面试官:网关如何实现限流?

王磊

Java 面试 java面试

NCH PhotoPad for Mac(照片编辑软件)v11.87注册版

iMac小白

捆绑销售商业环境中,SaaS初创企业面临采购行为习惯转变

B Impact

Donemax DMmenu for mac(Windows风格的MacOS开始菜单)v1.9激活版

iMac小白

Docker搭建Hadoop集群教程。

百度搜索:蓝易云

Docker hadoop Linux 运维 运维云计算

边缘计算平台如何助力元宇宙实现?

3DCAT实时渲染

边缘计算平台

Photo Image Editor Pixelstyle for Mac(图像编辑器)v4.3.0激活版

iMac小白

Wirecast Pro for Mac(视频直播制作工具)v16.0.3中文免激活版

iMac小白

阿里云智能集团不再推进分拆,并加大投入

B Impact

WordPress 基于亚马逊云的部署实践(四)- 负载均衡+弹性伸缩

王坤祥

AWS 亚马逊云 弹性伸缩 负载均衡器

Kubernetes Gateway API 攻略:解锁集群流量服务新维度!

SEAL安全

Gateway 运维‘ kubernetes 运维 企业号11月PK榜

2.5A、3MHz开关充电器解决方案

芯动大师

Qualcomm IPQ6010-IPQ6018-IPQ6000- chip with open source OpenWiFi- customized network

wifi6-yiyi

wifi openwrt IPQ6010 Qualcomm openwifi

第六期 |《实时洞察 智能运营一用友企业绩效管理白皮书》解读

用友BIP

企业绩效

MacRuby 0.5 Beta增加JIT、AOT、GCD支持,删除GIL_Ruby_Werner Schuster_InfoQ精选文章