• C++调用Lua的性能測试


    游戏服务器经典的架构就是C++和Lua的结合,C++开发主体框架。Lua实现一些复杂的逻辑。我们都知道Lua是一种很快的语言。可是究竟有多块。我们測试下看看。
    C++调用Lua的性能測试。发现不正确的地方望提出。
    

    实验一:我们使用C++调用Lua带8个以上參数的函数,而这个函数里面什么也没有做。我们通过这个实验能够简单地測试出:使用Lua虚拟机和向调用栈当中传入8+个參数和Lua取出这些參数的时间。

    可是当中的參数类型比較多样。有整形。浮点型,和数组。实验的Lua函数比較简单,例如以下:

    function test(x1,x2,x3,x4,x5,x6,x7,x8,x9)
    end

    实验结果:我们调用这个函数1000次所须要的时间在35ms左右,也就是说一次调用的时间在0.035ms左右

    实验二:我们使用C++调用带有一个參数的Lua函数。通过和实验一的结果组成方程组能帮我们求出使用Lua虚拟机的时间和參数出入栈的时间。


    当中Lua函数是很easy的例如以下:

    function testx1
    end

    实验结果:我们调用这个函数1000次所须要的时间在16ms左右。也就是说一次调用的时间在0.016ms左右。

    实验三:我们在实验二的函数中增加Lua调用C++的函数。这个函数在C++端也什么都不做,来測试Lua调用C++时入栈和出栈时候的时间。


    函数简单例如以下:

    function testx1
        Chat(x1,x2,x3,x4,x5,x6,x7)
    end

    实验结果:我们发现其使用时间高于(实验二)15ms左右,预计。调用一次虚拟机的时间是14ms,參数的时间预计是1ms左右

    实验四:我们在实验二的基础之上将其函数參数扩充到2个,我们观察其时间有没有小幅的变化。


    函数例如以下:

    function testx1,x2
    end

    实验结果:我们发现时间和实验二几乎相同,这也许能够反映出出入栈的时间是比較快的。申请比較大的栈内存也许会占用比較多的时间。

    实验五:我们在实验二的基础上将函数的參数扩充到3个。我们发现其时间还是没有明显的变化。


    函数例如以下:

    function testx1,x2x3
    end

    实验结果:能够反映出出入栈的时间是比較快的,申请比較大的栈内存也许会占用比較多的时间。

    实验六:我将函数的參数扩展到7个,我们观察其时间是怎样变化的
    函数例如以下:

    function test(x1,x2,x3,x4,x5,x6,x7)
    end

    实验结果:发现去时间和实验五几乎相同。也许能够验证出入栈的时间是比較快的。申请比較大的栈内存也许会占用比較多的时间。

  • 相关阅读:
    初识redis
    支付宝退款操作
    《地质灾害防治这一年2013》读书摘要
    地质灾害防治工作的经验和体会
    关于地质灾害防治的一些认识
    应急信息报送和值班工作的培训学习
    《地质灾害防治这一年2012》读书摘要
    关于开源GIS和商业GIS的讨论
    B树索引学习
    cordova 开发 ios app 简要流程
  • 原文地址:https://www.cnblogs.com/cynchanpin/p/7044961.html
Copyright © 2020-2023  润新知