(本題)Luaのダイレクトスレッデッドコード
非常にいいかげんに実装。たいていのプログラムはセグフォで落ちる。非常に恣意的なテストプログラムを走らせる。
local i = 1 local j = 1 while i<100000000 do i = i + 1 j = j + i end print(j)
% time (repeat 10 ./lua test.lua >/dev/null) 1:08.98 user 0.052 system 1:09.07 total % time (repeat 10 ./lua-dthreadead test.lua >/dev/null) 1:06.77 user 0.052 system 1:06.86 total
すばらしく微々たる違い。3%強の高速化に成功したぞ!
% time (repeat 10 luajit test.lua >/dev/null) 6.044 user 0.032 system 6.108 total
やっこさん桁が違う……!
JITってすごいなーというお話です。