Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why is LuaJIT so good?

Tags:

jit

lua

luajit

People also ask

Is LuaJIT faster than Lua?

Yes, luajit is much faster for pure lua, but it won't speed up your calls to C.

Is LuaJIT faster than C?

It can only be as fast as C, but is more likely to be slower. It can't be faster than the language of its own implementation. As long as the C code is fully optimized and uses the most appropriate algorithms. Poorly written C code can certainly be slower than well written LUA code.

Why Lua is the best?

Lua has an extremely clean simple design and a small API. I think this is the reason that it has the world's fastest JIT implementation for a dynamic scripting language. Lua is extremely popular within the gaming market because of its speed (see also speed compared to python).

What is the difference between Lua and LuaJIT?

LuaJIT is a Just-In-Time Compiler (JIT) for the Lua programming language. Lua is a powerful, dynamic and light-weight programming language. It may be embedded or used as a general-purpose, stand-alone language.


Mike Pall has talked about this in a few places:

  • http://article.gmane.org/gmane.comp.lang.lua.general/58908
  • http://lambda-the-ultimate.org/node/3851
  • http://www.reddit.com/user/mikemike

As with every performant system, the answer in the end comes down to two things: algorithms and engineering. LuaJIT uses advanced compilation techniques, and it also has a very finely engineered implementation. For example, when the fancy compilation techniques can't handle a piece of code, LuaJIT falls back to an very fast interpreter written in x86 assembly.

LuaJIT gets double points on the engineering aspect, because not only is LuaJIT itself well-engineered, but the Lua language itself has a simpler and more coherent design than Python and JavaScript. This makes it (marginally) easier for an implementation to provide consistently good performance.