Lua just in time

Playing around with Lua [1] is fun, but I've been hearing some good things about LuaJIT [2], a “just in time” compiler for Lua for the x86 platform (written by a single guy, no less!). Even more amazing, it's literally a drop in replacement for Lua (both the command line interpreter and library).

Okay, I'm willing to give this a try. I download [3], compile and install it. I then decide to test it using jumble program I wrote in Lua [4]. All I need to do is change one line:

>
```
#!/usr/local/bin/lua
```

to read:

>
```
#!/usr/local/bin/luajit
```

and rerun the program.

Table: Lua version of Jumble program
version	time in seconds
------------------------------
pure Lua	7.74
pure LuaJIT	3.57
Lua + C	2.06
LuaJIT + C	1.70

LuaJIT easily trounces the Lua interpreter without any code changes (other than specifying a different “interpreter”). The versions with C use a C function to sort the letters in the word and while LuaJIT was faster than the Lua + C version, the very fact that I didn't have to modify any code is fantastic! LuaJIT used the very same C code as the Lua version—no changes or recompilations required!

Very neat!

I just relinked my Lua daemon [5] against LuaJIT, just to test it out, and yes, it worked without any changes. I could even reload the scripts on the fly. And incredibly, it's only about 50% bigger than Lua itself.

LuaJIT is one sweet piece of technology.

[1] http://www.lua.org/

[2] http://luajit.org/

[3] http://luajit.org/download.html

[4] /boston/2009/10/14.3

[5] /boston/2009/10/21.1

Gemini Mention this post

Contact the author