Ruby 将引入新 JIT 编译器:YJIT,平均速度提升 23%

近日,Ruby 代码仓库新增了一个关于合并 YJIT 的PR。

Ruby 将引入新 JIT 编译器:YJIT,平均速度提升 23%_第1张图片

据介绍,YJIT 是一种使用 Lazy Basic Block Versioning (LBBV) 编译器架构构建的即时编译器。

在进行实际基准测试时,YJIT 比当前的CRuby 解释器平均速度提升了23%。

Ruby 将引入新 JIT 编译器:YJIT,平均速度提升 23%_第2张图片

Ruby 将引入新 JIT 编译器:YJIT,平均速度提升 23%_第3张图片

Ruby 将引入新 JIT 编译器:YJIT,平均速度提升 23%_第4张图片

Ruby 开发团队计划将 YJIT 包含在 Ruby 3.1 预览版中,以便更多用户可以帮助他们对其进行测试,从而获得性能提升。

目前 YJIT 默认处于禁用状态,需要打开--yjit 选项或设置 YJIT\_RUBY\_ENABLE=1 进行启用。需要注意的是,YJIT 暂时只支持 macOS 和 Linux 系统和 x86-64 CPU 架构。

其他问题

  • 在不受支持的平台上,Ruby 使用传统的解释器
  • 生成的代码没有垃圾收集功能。超过设定的--yjit-exec-mem-size 数值就会报错。开发团队称在未来几个月内会解决此问题。
  • YJIT 在运行时会使用更多内存,因为它需要分配机器代码,可通过设置--yjit-exec-mem-size 的值进行调整
  • YJIT 不能与 MJIT 同时启用,两者中只有一个可以在运行时处于活动状态。

你可能感兴趣的:(ruby)