今天简单测试了几种脚本语言循环的效率,分别是
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在一个数量级上,在效率上还是可以接受的。我们现在的项目的服务器脚本就在用它.