Lua居然比Squirrel慢,奇怪

来源:互联网 发布:三级域名怎么解析 编辑:程序博客网 时间:2024/04/16 07:13

到了办公室,有了Lua环境,我决定试一下Lua的运行速度,测量的方法与Squirrel一样,将读TSC寄存器的C代码封装成一个方法,放入LuaSquirrel中,测试结果也令我很诧异,Lua实际上比Squirrel要慢。

 

Lua Table:

tb={};

i=0;

while(i<1000)

do

tb[i]=i*13

i=i+1;

end

 

total=0;

i=0;

while(i<1000)

do

total=total+tb[i];

i=i+1;

end

 

这段程序与测试Squirrel的测试程序是差不多的,Lua执行这段代码花费了1308KCPU 脉冲,Squirrel几乎比Lua20%。这有些令人想不通,我不想得出SquirrelLua快的结论,难道Lua在执行代码的时候是边扫描分析边执行?Squirrel在执行代码之前实际上已经进行了预编译,脚本文件已经变成了存储在Squirrel虚拟机内地字节码,如果Lua没有采取与编译技术,那么它落后Squirrel是可以理解的。

我不是做游戏开发的,对Lua只知道基本的使用,如果有Lua的高手,可以帮我看看Lua虚拟机有没有预编译过程,如果没有,Lua完全可以像Squirrel一样进行预编译,提高执行速度。