最近は Raspberry Pi で LuaJIT を少し触りましたが、 以前 Apache2.4.1 に mod_lua が追加されたときにも 少しだけ Lua を触っていました。
Lua が結構速いということで、 その時に 他の言語と 超簡単な速度比較をしていたのですが、 今回は LuaJIT も含めて Raspberry Pi 上で比較してみたいと思います。
$ time bash -c 'for ((i=0;i<1000000;i++)) do j=i; done' real 2m51.676s user 2m46.940s sys 0m3.620s $ time perl -e 'for($i=0;$i<1000000;$i++){$j=$i;}' real 0m2.782s user 0m2.740s sys 0m0.020s $ time lua -e 'for i=1,1000000 do j=i end' real 0m0.337s user 0m0.330s sys 0m0.010s $ time luajit -e 'for i=1,1000000 do j=i end' real 0m0.041s user 0m0.010s sys 0m0.000s
luajit は 速いですね。
変数を局所化した方が早くなるそうなので そちらもお試し。
$ time lua -e 'local i, j; for i=1,1000000 do j=i end' real 0m0.171s user 0m0.160s sys 0m0.010s $ time luajit -e 'local i, j; for i=1,1000000 do j=i end' real 0m0.022s user 0m0.010s sys 0m0.000s
かなり速くなりました。