为什么LuaJIT这么好?

这份编程语言的比较显示出LuaJIT比普通的Lua实现快了十多倍。为什么变化这么大?Lua有什么具体的特点能够从JIT编译中受益这么多? Python也是动态类型并且编译为字节码,那么为什么PyPy(我相信现在已经有JIT了)没有表现出如此大的性能提升?

原文链接 https://stackoverflow.com/questions/4911762

点赞
stackoverflow用户169305
stackoverflow用户169305

Mike Pall在几个地方谈到了这个话题:

与所有高性能系统一样,最终的答案取决于两个因素:算法和工程。LuaJIT使用先进的编译技术,并且它也有非常精细的实现。例如,当高级编译技术无法处理代码片段时,LuaJIT会退回到一个用x86汇编编写的非常快的解释器。

LuaJIT在工程方面得到了双倍的分数,因为不仅LuaJIT本身经过了精细的设计,而且Lua语言本身的设计比Python和JavaScript更简单、更连贯。这使得一个实现能够提供一致良好的性能(略微)更容易。

2011-02-06 05:40:29