* * * * *
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]
gopher://gopher.conman.org/0Phlog:2009/10/14.3
[5]
gopher://gopher.conman.org/0Phlog:2009/10/21.1
Email author at
[email protected]