Ruby 2.6.0 已正式发布,引入了许多新功能和性能改进,其中最值得关注的包括:
● 一个新的 JIT 编译器
●
RubyVM::AbstractSyntaxTree 模块
具体来看:
JIT(试验阶段)
Ruby 2.6 引入了 JIT (Just-in-time) 编译器的初始实现。JIT 编译器旨在提高 Ruby 程序执行的性能。与其他语言的普通 JIT 编译器不同,Ruby 的 JIT 编译器以一种独特的方式进行 JIT 编译,它先将 Ruby 编译成 C 代码,然后通过生成通用的 C 编译器过程(compiler process)来生成原生机器码。详情可查阅 MJIT organization by Vladimir Makarov 。
要启用 JIT 编译器,需在命令行或 $RUBYOPT 环境变量中指定 --jit 。
在 Optcarrot 基准测试中,Ruby 2.6 与 Ruby 2.5 相比,性能提高了 1.7 倍。不过,它目前仍然处于试验阶段,详见 Ruby 2.6 JIT - Progress and Future 。
RubyVM::AbstractSyntaxTree(试验阶段)
Ruby 2.6 还引入了
RubyVM::AbstractSyntaxTree 模块。该模块具有 parse 方法,它将给定的字符串解析为 Ruby 代码并返回代码的 AST(抽象语法树)节点。