根据我的理解,标准的Lua解释器首先将输入代码编译为"字节码" (luac
)的输出然后"解释"那个字节码。
但这基本上不是JIT编译器的定义吗?那时LuaJIT做了什么?它与标准的Lua解释器有何不同?怎么会这么快?
答案 0 :(得分:4)
基本上不是JIT编译器的定义吗?那时LuaJIT做了什么?
它实现了自己的解释器,它通常比"标准"更快。 Lua解释器和它JIT-将频繁访问的片段编译为机器指令,这进一步提高了性能,但限制了可移植性(因为这些指令是机器/体系结构特定的)。
您可以在Mike Pall's overview中找到更多改进和优化。另请参阅this page for the overall JIT discussion,特别是Mike Pall's comments。