LuaJIT真的比其他所有JIT动态语言都快吗?

Gab*_*ier 48 lua jit luajit

根据计算机语言基准测试游戏,LuaJIT实现似乎击败了所有其他JIT-ed动态语言(V8,Tracemonkey,PLT Scheme,Erlang HIPE)一个数量级.

我知道这些基准测试不具代表性(正如他们所说:"哪种编程语言实现具有最快的基准测试程序?"),但这仍然令人印象深刻.

在实践中,情况确实如此吗?有人测试过Lua的实现吗?

Dou*_*rie 33

Lambda the Ultimate有一个很好的讨论.LuaJIT非常好.

很多人都报道了lua-l(lua邮件列表)令人印象深刻的加速.对于纯Lua代码,加速最令人印象深刻; 当可加载库模块中有大量C函数调用时,跟踪编译器不那么有效.


tbe*_*ear 16

在我的情况下(游戏原型开发),我发现没有任何性能提升.我使用lua进行嵌入,因此有很多对C++库函数的调用.即使主循环在lua脚本中并且所有重要逻辑都在lua中实现,整体性能也是通过使用C++实现的渲染引擎和物理引擎来确定的.最初的lua已经足够快了这些应用程序.

  • 如果你使用LuaJIT ffi接口来调用C函数,它们会被jit编译器本地内联,这会更快.我以与C相同的速度调用Linux系统调用. (19认同)
  • 请注意,LuaJIT配置为不在iOS上执行任何JITing.这是因为Apple不批准可以编译代码的iOS应用程序.你在iOS上开发吗? (2认同)

小智 6

我用这里学到的经验做了一个实验:http://www.sampalib.org/luajit2.0_tunning.html 有些数据不再有效(maxmcode = 1024就足够了),但是luajit在600行上带来了强劲的改进代码纯Lua脚本(没有C调用命中perfs ...)这不是一个大规模的应用程序,也不是嵌入式用例,但远远超过基准测试.