当前位置 : 主页 > 网络安全 > 测试自动化 >

表长度运算符的性能

来源:互联网 收集:自由互联 发布时间:2021-06-22
Lua有#运算符来计算用作数组的表的“长度”.在诸如C之类的语言中,在计算出某事物的长度之后,通常不再计算它.例如int len = strlen(string); 这在Lua中有什么不同吗?一个效率低于另一个吗
Lua有#运算符来计算用作数组的表的“长度”.在诸如C之类的语言中,在计算出某事物的长度之后,通常不再计算它.例如int len = strlen(string);

这在Lua中有什么不同吗?一个效率低于另一个吗?

(显然,对于相当小的表格,这可能不会显示出明显的差异,但知道这一点并不坏.)

表的#值不是由Lua内部存储的:它是在每次调用时计算的.

Lua使用二进制搜索,因此成本与表的大小成对数.请参阅http://www.lua.org/source/5.2/ltable.c.html#luaH_getn的代码.换句话说,除了巨大的表外,成本基本上是不变的.

网友评论