之前一直有人让给出fakescript与lua的测试数据,那么问题来了
测试环境为Amazon EC2 t2.micro,单核1g内存
测试代码和脚本在fakescript的源码里都能找到,链接 fakescript
lua与fake均使用O3编译
测试方法为调用脚本函数myfunc1 900w次,看总消耗时间
由于这种嵌入式脚本,逻辑总是分为自身逻辑和与C函数的交互,因此测试脚本分成了对应的两种
下图是针对两种脚本的运行结果:
fakescript | lua |
|
9.lua(自身逻辑) |
7s |
10s |
17.lua(调用C函数) |
2s |
5s |
9.lua内容如下,主要是脚本内部的循环、判断与计算
-- func1 comment
function myfunc1(arg1, arg2)
while arg1 < arg2 + 10 do
arg1 = arg1 + 1
end
return arg1
end
lua的调用图:
fake的调用图
对于17.lua,脚本内容如下,主要内容是调用注册的C函数cfunc1
-- func1 comment
function myfunc1(arg1, arg2)
return 1 + cfunc1(-10, cfunc1(arg1, arg2))
end
cfunc1的内容很简单
int cfunc1(int a, int b)
{
return a - b;
}
那么lua的调用图如下:
fake的调用图为
可以看到,fake调用的函数比lua少的多,因为内部结构更简单