fakescript与lua的性能比较

之前一直有人让给出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的调用图:

fakescript与lua的性能比较_第1张图片

fake的调用图

fakescript与lua的性能比较_第2张图片



对于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的调用图如下:

fakescript与lua的性能比较_第3张图片

fake的调用图为

fakescript与lua的性能比较_第4张图片


可以看到,fake调用的函数比lua少的多,因为内部结构更简单

你可能感兴趣的:(lua,fakescript)