luaとluajitのパフォーマンス比較テスト
luaとluajitのパフォーマンス比較テスト
テストスクリプトb.lua
local i = 0
while 1 do
i = i+1
if i > 10000000 then
print(i)
break
end
end
Cプログラムのテスト
#include
int main() {
int i = 0;
while (1) {
i = i+1;
if (i > 10000000) {
printf("%d
", i);
break;
}
}
return 0;
}
gcc -g -o b b.c
テスト結果
[root@123 luaffi]# time ./b
10000001
real 0m0.025s
user 0m0.025s
sys 0m0.001s
[root@123 luaffi]# time ./b
10000001
real 0m0.025s
user 0m0.025s
sys 0m0.001s
[root@123 luaffi]# time ./b
10000001
real 0m0.025s
user 0m0.025s
sys 0m0.001s
[root@123 luaffi]# time ./b
10000001
real 0m0.026s
user 0m0.025s
sys 0m0.001s
[root@123 luaffi]# time ./b
10000001
real 0m0.025s
user 0m0.024s
sys 0m0.002s
[root@123 luaffi]# time luajit b.lua
10000001
real 0m0.017s
user 0m0.017s
sys 0m0.000s
[root@123 luaffi]# time luajit b.lua
10000001
real 0m0.018s
user 0m0.016s
sys 0m0.001s
[root@123 luaffi]# time luajit b.lua
10000001
real 0m0.018s
user 0m0.017s
sys 0m0.001s
[root@123 luaffi]# time lua b.lua
10000001
real 0m0.150s
user 0m0.149s
sys 0m0.001s
[root@123 luaffi]# time lua b.lua
10000001
real 0m0.144s
user 0m0.143s
sys 0m0.001s
[root@123 luaffi]# time lua b.lua
10000001
real 0m0.145s
user 0m0.144s
sys 0m0.000s
結論:主にユーザ状態で実行されるLuaプログラムは,Luajitの実行速度がLuaの実行速度よりはるかに高く,ここで使用するテストプログラムLuajitはLuaの約8倍程度である.ある程度Cプログラムと差の少ない速度に達することができます.