Ruby 新 JIT 编译器 RJIT 的引入,MJIT 将被取代
发表时间: 2023-03-10 10:36
出品|开源中国
Ruby 代码仓库近期新增了一个关于合并 RJIT 的 PR。
据介绍,RJIT 是新的 JIT 编译器,用作 MJIT 的替代实现。主要特性如下:
RJIT 使用纯 Ruby 汇编程序生成原生代码
MJIT 在运行时需要 C 编译器,YJIT 在构建时需要 Rust 编译器。RJIT 不需要它们
这意味着 RJIT 的预热可能比 YJIT 慢,但仍然比 MJIT 快得多
RJIT 生成的代码看起来与 YJIT 非常相似
事实上,很多方法都是将 Rust 代码直接翻译成 Ruby
因此能够通过删除特定于 MJIT 的实现来简化 Ruby VM
如果需要,还可以在 RJIT 中为 YJIT 做一些早期实验
关于 RJIT 的更多信息,查看 [Feature #19420]。
部分性能基准测试如下:
Headlining Benchmarks
MicroBenchmarks
其他基准测试