Lua JIT 2.0b

bearophile bearophileHUGS at lycos.com
Tue Nov 3 13:19:09 PST 2009


Lua is a dynamically-typed language, so its insights are not directly applicable to D, but recently the version 2.0beta of its Just-in-time compiler has become available:
http://www.reddit.com/r/programming/comments/9zrnp/luajit_2_beta_released/

Today this JIT is probably the most advanced for dynamic languages. Even V8, that's a very efficient JIT for JavaScript (and that's 2-5 times faster than the new JIT of Firefox), partially developed by expert people coming from the optimization of Smalltalk VM, produces very slow programs compared to this last Lua JIT:
http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=luajit&lang2=v8&box=1

Its SpecMark2 performance may even be compard to DMD ones :o) (I have translated specmark2 to D, if you want it):
http://pastebin.ca/1650985
My timings of SpecMark2, for comparison:
Timings on WinXp 32 bit, 2.00 seconds min time:
               small   large
  D DMD:         299    207
  D DMD:         401    268 (OOP version)
  C GCC:         578    314
  C LLVM-GCC:    609    351

But the meat of this post can be found here:
http://article.gmane.org/gmane.comp.lang.lua.general/58908

It's the first time I see tagged floating point doubles, as far as I know not even good CommonLisp implementations are smart enough to use them!
The ideas behing Lua associative arrays can be used to speed up the common enough case of small AAs in D language. That JIT is created by a single programmer, and I think he's really intelligent and good. He's a top programmer, among the best ten I know :-)

Bye,
bearophile



More information about the Digitalmars-d mailing list