这几天粗略的测试了一下lua的效率!首先声明这个测试很有针对性,大部分是针对游戏中的使用,而绝非lua的整体性效率(这个测试我不会),lua构建的上层逻辑中,大概使用的语句不太多,for,迭代,调用C函数,if else,local var等这些语句,其他的语句相对少!给出测试代码:

#include <iostream>

extern "C"
{
    #include "lua.h"
    #include "lualib.h"
    #include "lauxlib.h"
};

#include "lua_tinker.h"

int cpp_func(int arg1, int arg2)
{
    return arg1 + arg2;
}

int main()
{
    // Lua 甫 檬扁拳 茄促.
    lua_State* L = lua_open();

    // Lua 扁夯 窃荐甸阑 肺靛茄促.- print() 荤侩
    luaL_openlibs(L);

    // LuaTinker 甫 捞侩秦辑 窃荐甫 殿废茄促.
    lua_tinker::def(L, "cpp_func", cpp_func);

    // sample1.lua 颇老阑 肺靛/角青茄促.
    lua_tinker::dofile(L, "sample1.lua");

    // 橇肺弊伐 辆丰
    lua_close(L);

    ;
}

给出lua代码:

local main={}

local array={"a","b","c","d","e","f"}

main.testFunction = function()
--    cpp_func(1,1)

--    for i,k in ipairs(array) do
--    end

    , do
         then
        else
        end
    end
end

main.main = function()
    print("start time:",os.time())
    , do
        main.testFunction()
    end
    print("end   time:",os.time())
end

main.main()

大概给出一个测试结果吧,环境是我的开发机器!

lua 调用C函数,每秒可以调用10000000次,大概1ms调用1k次。

lua 至于申请变量和 if else 判断,每秒可以调用100000000次,大概1ms调用1w次。迭代起与for循环相当!

测试lua的效率的更多相关文章

  1. vs2005 测试 lua环境

    (1)添加文件核路径 (2)库文件路径 (3)main.cpp #include <stdio.h>#include <string.h> extern "C&quo ...

  2. 提升lua代码效率

    local test = {} , do test[ i ] = {} end local t1 = os.clock( ) , do test[ ].mValue = end local t2 = ...

  3. FFmpeg: 一个简单测试手机解码效率的方法

    先写一个获取当前时间戳的方法 long long GetNowMs() { struct timeval tv; gettimeofday(&tv, NULL); ; // 为了简化计算,否则 ...

  4. apache测试网页执行效率

    apache软件下有一个测试网页访问速度的工具ab.exe,位于apache的bin目录下,windows下使用命令行进入bin目录,执行ab.exe -n 10000 -c 10 http://12 ...

  5. 关于 pgsql 数据库json几个函数用法的效率测试

    关于 pgsql 数据库json几个函数用法的效率测试 关于pgsql 几个操作符的效率测试比较1. json::->> 和 ->> 测试方法:单次运行100次,运行10个单次 ...

  6. 读《实战GUI自动化测试》之:第三步,如何提高测试结果分析的效率

    转自:http://www.ibm.com/developerworks/cn/rational/r-cn-guiautotesting3/ 所谓自动化测试,就是“自动化”+“测试”.自动化本身显然不 ...

  7. 关于pgsql 几个操作符的效率测试比较

    关于pgsql 几个操作符的效率测试比较1. json::->> 和 ->> 测试方法:单次运行100次,运行10个单次取平均时间.测试结果:->> 效率高 5% ...

  8. 使用Nginx+Lua代理Hadoop HA

    一.Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个Master组件提供服务,其中正在使用的组件称为Active,另一个作为备份称为Standby,例如HDFS的NameNo ...

  9. 【腾讯Bugly干货分享】手游热更新方案xLua开源:Unity3D下Lua编程解决方案

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/2bY7A6ihK9IMcA0bOFyB-Q 导语 xL ...

随机推荐

  1. 将自己写的windows服务加入到windows集群中

    最近发现windows集群能进行很多自定义,比如在集群中加入自己编写的服务. 能自定义的可不少,截个图: 本次演示中,只想用“通用服务”这个类型. 先列下步骤 编写一个记录时间的Windows服务,这 ...

  2. Android--ColorMatrix改变图片颜色

    前言 本篇博客讲解如何通过改变图片像素点RGB的值的方式,在Android中改变图片的颜色.在最后将以一个简单的Demo来作为演示. 本篇博客的主要内容: ColorMatrix 使用ColorMat ...

  3. 好老板VS坏老板

    以下是漫画图解: 现在大家应该都能做出正确的判断了吧? 那90后的员工碰上70后的老板又会如何呢? 过去30多年来,基于资源禀赋.行政区划及产业政策等,形成了不同城市发展格局,接下来十年中国经济结构调 ...

  4. java 方法调用绑定

    将一个方法调用同一个方法主体关联起来被称作绑定.若在程序执行前进行绑定(由编译器和连接器实现),叫做前期绑定.读者可能从来没有听说过这个术语,因为它在面向过程语言中不需要选择就默认的绑定方式.例如C语 ...

  5. EF OnModelCreating

      http://www.cnblogs.com/libingql/p/3353112.html     protected override void OnModelCreating(DbModel ...

  6. LINQ TO ENTITY 根据Birthday获取Age

    from emp in EmployeeInfo let years = EntityFunctions.DiffYears(emp.Birthday.Value,DateTime.Now) let ...

  7. Request is not available in this context

    部署到新服务器的IIS的时候发现这个错误: Request is not available in this context 解决方案: <system.web> <customEr ...

  8. html5网页动画总结--jQuery旋转插件jqueryrotate

    CSS3 提供了多种变形效果,比如矩阵变形.位移.缩放.旋转和倾斜等等,让页面更加生动活泼有趣,不再一动不动.然后 IE10 以下版本的浏览器不支持 CSS3 变形,虽然 IE 有私有属性滤镜(fil ...

  9. C#壓縮文件幫助類 使用ICSharpCode.SharpZipLib.dll

    using ICSharpCode.SharpZipLib.Checksums; using ICSharpCode.SharpZipLib.Zip; using System; using Syst ...

  10. 储物柜soket通信协议和中间件实现技术细节

    一.中间件程序的职责: 1)对柜机提供soket长连接的服务器端,就是soket server.可提供上万的客户端同时连接.用来实时响应控制请求,中间件必须随时知道某个柜机的在线状态,外部请求时才能判 ...