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プログラムと差の少ない速度に達することができます.