Lua一些操作耗时

在代码比较少的情况下,一些边界操作的耗时就尤为重要了,比如说function() end这种函数调用,在虚拟机层面要走lua_Dcall,要多走快50行的C代码,如果函数内部本身复杂度较高,那这些微乎其微,但是如果函数本身复杂度较低,并且多次调用,可能就会有影响。

操作耗时(1e6循环, seconds)相当于几个基础操作
C语言 一条指令0.0011/6
Lua 空循环0.0071
标准指令0.0061
空CAPI调用0.0488
空lua函数调用0.0427
空元表index调用0.11719.5
创建空表0.325
创建哈希容量1并初始化0.616103
创建哈希容量3并初始化0.7112
lua函数中创建哈希容量3并初始化0.743124
C中创建含有三个int的udata并设置结构为vector0.39366
修改已有容量的表的值0.07912
读表0.0193
C函数创建size1 udata0.27390
C函数创建size10 udata0.27890
C函数创建size10000 udata1.852600
创建哈希容量4并初始化0.724120
创建哈希容量8并初始化0.985164
创建哈希容量16并初始化1.42237
创建哈希容量32并初始化2.005334
https://www.mxyf.net/wp-content/uploads/2024/11/testbasictime.lua_.txt

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

大纲

Share the Post:
滚动至顶部