Lua 和 LuaJIT 处理代码的差异是什么?

据我了解,标准 Lua 解释器首先将输入的代码编译为“字节码”(luac 的输出),然后解释该字节码。

但这不基本上就是 JIT 编译器的定义吗?那么 LuaJIT 做什么?它与标准 Lua 解释器有何区别?它怎么能这么快?

点赞
用户1442917
用户1442917

这不就是 JIT 编译器的基本定义吗?那么 LuaJIT 做了什么呢?

它实现了自己的解释器,通常比“标准”的 Lua 解释器更快,并将经常访问的代码片段 JIT 编译为机器指令,带来进一步的性能提升,但会限制可移植性(因为这些指令是特定于机器/架构的)。

还有许多改进和优化,您可以在 Mike Pall 的概述 中找到。也可以查看 这个页面的 JIT 讨论,特别是 Mike Pall 的评论

2017-03-02 22:34:47