1. 程式人生 > >幾種指令碼語言的效能簡單測試

幾種指令碼語言的效能簡單測試

今天簡單測試了幾種指令碼語言迴圈的效率,分別是

native c

tcc(tiny c compiler)

lua

AngelScript

都是在vc環境下做的測試

//c程式碼如下

//c & tcc & as code: 這些都是c風格的,我個人比較習慣

double process(double ret)
{
 double i=0.0;
 for(i=0.0;i<1000000000.0;i+=1.0)
  ret +=2.0;
 return ret;
}

//lua code:說實話,我不大喜歡這種風格:)

local i=0.0;
local function process (ret)
 while(i < 1000000000.0) do
  i = i+1.0
  ret = ret + 2.0
 end
 return ret

end

分別用四種語言測試了一下,所花時間(ms)是:

c        1625
tcc     5468

lua 103368
as  268906

以c為標準,看來lua其實也很慢,大概只有c的1/60速度,angelscript就更慢了,只有1/150......,tcc也沒有預想中的快,大概是c的1/4(沒想到會這麼慢的,這可是編譯成386機器程式碼的啊)

現在很多的專案都採用lua做指令碼,寫一些介面,AI什麼的,簡單的測試下發現效率堪憂。不知道luajit能不能帶來效能上的飛躍,以後有空得測試一下。

tcc雖然也沒有預想中的快,(原來我認為會和c差不多,最多差個百分之幾十),但至少是和c在一個數量級上,在效率上還是可以接受的。我們現在的專案的伺服器指令碼就在用它.