为什么LuaJIT这么好?

Mih*_*hai 52 lua jit luajit

编辑:不幸的是,LuaJIT在下面的链接中被取消了比较.

这种编程语言的比较表明,LuaJIT比普通的Lua实现有十倍以上的改进.为什么变化如此之大?是否有一些特定的Lua使得它从JIT编译中受益匪浅?Python是动态类型化的,并且也被编译为字节码,那么为什么PyPy(我相信现在有JIT)显示出如此大的性能提升?

Ben*_*rel 63

Mike Pall在几个地方谈过这个问题:

与每个高性能系统一样,答案最终归结为两件事:算法和工程.LuaJIT使用高级编译技术,它还具有非常精细的实现.例如,当花哨的编译技术无法处理一段代码时,LuaJIT就会回归到用x86汇编编写的非常快速的解释器.

LuaJIT在工程方面得到了双点,因为LuaJIT本身不仅设计精良,而且Lua语言本身比Python和JavaScript更简单,更连贯.这使得实现(稍微)更容易实现始终如一的良好性能.

  • LuaJIT毫无疑问是优秀算法和优秀工程的典范.这个(或这个)是否像营销文本一样无关紧要.装配中的手工编码解释器循环可测量的速度比解释器的C版本快得多,这是良好工程的例子.别名分析,存储下沉,负载转发,纳标记,寄存器分配以及高效的跟踪组合/退出是优秀算法(和工程)的示例. (27认同)