C++调用Lua的性能测试
来源:互联网 发布:中国gdp增速放缓知乎 编辑:程序博客网 时间:2024/06/08 08:48
游戏服务器经典的架构就是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函数是非常简单的如下:
function test(x1)end
实验结果:我们调用这个函数1000次所需要的时间在16ms左右,也就是说一次调用的时间在0.016ms左右。
实验三:我们在实验二的函数中加入Lua调用C++的函数,这个函数在C++端也什么都不做,来测试Lua调用C++时入栈和出栈时候的时间。
函数简单如下:
function test(x1) Chat(x1,x2,x3,x4,x5,x6,x7)end
实验结果:我们发现其使用时间高于(实验二)15ms左右,估计,调用一次虚拟机的时间是14ms,参数的时间估计是1ms左右
实验四:我们在实验二的基础之上将其函数参数扩充到2个,我们观察其时间有没有小幅的变化。
函数如下:
function test(x1,x2)end
实验结果:我们发现时间和实验二差不多,这或许可以反映出出入栈的时间是比较快的,申请比较大的栈内存或许会占用比较多的时间。
实验五:我们在实验二的基础上将函数的参数扩充到3个,我们发现其时间还是没有明显的变化。
函数如下:
function test(x1,x2,x3)end
实验结果:可以反映出出入栈的时间是比较快的,申请比较大的栈内存或许会占用比较多的时间。
实验六:我将函数的参数扩展到7个,我们观察其时间是如何变化的
函数如下:
function test(x1,x2,x3,x4,x5,x6,x7)end
实验结果:发现去时间和实验五差不多,或许可以验证出入栈的时间是比较快的,申请比较大的栈内存或许会占用比较多的时间。
- C++调用Lua的性能测试
- C调用lua脚本的效率测试
- C调用lua脚本的效率测试
- C调用lua脚本的效率测试
- wrk调用lua测试性能
- C调用LUA各种方式的性能对比
- C语言中调用lua 脚本执行的效率测试
- 详解C调用lua脚本效率测试
- C调用lua脚本效率测试
- lua学习笔记(2)——C语言调用lua的使用和测试
- lua 和c的调用
- C语言函数调用性能测试
- [Lua]C/C++调用Lua
- [lua]C调用lua函数
- C语言调用lua的简单例子
- C和lua的互相调用
- Lua调用C函数:tolua++ 的使用
- Lua和C的互相调用
- Discuz论坛 创始人/超级管理员密码忘记解决办法!
- Havok_2014-1-0_Pc_Xs_User_Guide(2.2.2-模拟仿真一个Physics2012世界)
- Innodb/MyISAM在自增/UUID主键下的性能与索引空间比较
- java 接口继承接口作用
- 什么是 Event Loop
- C++调用Lua的性能测试
- 【MySql】使用记录<七>
- 【Windows编程】系列第九篇:剪贴板使用
- 摄像机标定方法(二)----Faugeras的摄像机标定方法
- zoj_1002
- 黑马程序员———Java编程基础之数组
- JackSon 数据之间的转换 java
- [拓展]杭电1003(最大子数组问题)
- cin与cout