编辑:不幸的是,LuaJIT 在下面的链接中被排除在比较之外。
这种编程语言的比较表明,LuaJIT 比普通的 Lua 实现有十倍以上的改进。为什么变化如此之大?Lua 是否有一些特定的东西使它从 JIT 编译中受益匪浅?Python 也被动态输入并编译为字节码,那么为什么 PyPy(我相信现在有 JIT)没有表现出如此大的性能提升呢?
Mike Pall 在几个地方谈到了这一点:
与每个高性能系统一样,最终的答案归结为两件事:算法和工程。LuaJIT 使用先进的编译技术,并且它也有一个非常精细的实现。例如,当花哨的编译技术无法处理一段代码时,LuaJIT 会退回到用 x86 汇编编写的非常快速的解释器。
LuaJIT 在工程方面获得了双分,因为不仅 LuaJIT 本身设计精良,而且 Lua 语言本身的设计比 Python 和 JavaScript 更简单、更连贯。这使得(稍微)实现更容易提供始终如一的良好性能。