No need to wonder, have a look at the source code for them both and it will become clear exactly why there is such a performance difference.  Lua gives you raw C numeric types which makes a big difference right there.  Other people have mentioned a few other good reasons too (no costly method dispatch).<p>I haven't looked at LuaJIT yet but considering how small it is I'm sure it meets or exceeds the quality of the code behind Lua.