写点什么

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:531040

评论

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

Java进阶(二十八)SimpleDateFormat格式化日期问题

No Silver Bullet

Java 9月月更

阿里巴巴“高并发”天花板教程《基础+实战+源码+面试+架构》

程序知音

Java 高并发 阿里 多线程与高并发 java架构

会当“零”绝顶!天翼云零信任产品利刃出鞘

天翼云开发者社区

安全

银河麒麟、中标麒麟学习实操资料汇总(含V4、V7、V10)

墨天轮

操作系统 国产化 银河麒麟 中标麒麟

测试人生 | 从小团队的业务到独角兽的测开,涨薪超过60%,90后小哥哥凤凰涅槃了

霍格沃兹测试开发学社

测试人生 | 做了低薪运营6年,妹纸靠什么转行拿下 20W 年薪?

霍格沃兹测试开发学社

如何选择靠谱的西安培训机构?

小谷哥

100+大屏模板免费领!葡萄城BI行业应用方案重磅发布!

葡萄城技术团队

BI 发布会

测试人生 | 双非学历入职名企大厂还薪资翻倍?

霍格沃兹测试开发学社

JAVA开发培训哪家比较好

小谷哥

天翼云全场景业务无缝替换至国产原生操作系统CTyunOS!

天翼云开发者社区

系统

开发者个人成长主题征文挑战赛正式启动!说出你的成长故事共谱青春乐章

InfoQ写作社区官方

个人成长 热门活动

测试人生 | 年薪50w+ 并入职名企大厂,这是双非学历小哥哥给自己30岁的礼物

霍格沃兹测试开发学社

自学Java和java培训哪个好就业

小谷哥

CentOS时代即将结束 国产系统能否避免“受限”覆辙?

天翼云开发者社区

Databend JSON 复杂数据类型的设计与使用 | Databend 特性系列

Databend

json

测试人生 | 从跨专业手工测试转岗外包,再到 Python 测试开发,跳槽涨薪 85%!

霍格沃兹测试开发学社

测试人生 | 半年涨薪20W入职名企大厂,这个90后妹纸凭什么这么猛?

霍格沃兹测试开发学社

测试人生 | 双非院校、入职某知名电商公司薪资翻倍还有股票奖励,这个90后小姐姐也太飒了吧?

霍格沃兹测试开发学社

ClickHouse 在海量数据下的应用实践

移动云大数据

Clickhouse

数据湖管理及优化

阿里云大数据AI技术

大数据 spark 数据湖 企业号九月金秋榜

企业上云安全感多“亿”点!

天翼云开发者社区

计算机网络——数据链路层

StackOverflow

编程 计算机网络 9月月更

人工智能、机器学习与深度学习的区别在哪里?

Finovy Cloud

人工智能 深度学习

Wallys /QCA9880 vs QCA9882/802.11ac Solution/MU-MIMO

wallys-wifi6

QCA9880 QCA9882

测试人生 | 从外行到外包,从手工测试到知名互联大厂测开 这个90后小姐姐是怎么腾飞的?

霍格沃兹测试开发学社

参加Java培训能学到开发技术吗?

小谷哥

Java培训学生可以学到哪些开发技术呢

小谷哥

天翼云安全一体化纵深体系是怎么炼成的?

天翼云开发者社区

云安全

是什么引起数据库响应超时?

BUG侦探

MySQL AWS 云服务

测试人生 | 双非院校跨城重新开始,薪资翻了2倍还多,这个90后小姐姐好飒

霍格沃兹测试开发学社

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