c - 表格长度运算符的性能

标签 c performance lua lua-table

Lua 有# 运算符来计算用作数组的表的“长度”。在诸如 C 之类的语言中,在计算出某些内容的长度后,通常不会再次计算它。例如int len = strlen(string);

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

(显然,对于相当小的表,这可能不会显示出明显的差异,但了解它永远不会是坏事。)

最佳答案

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

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

关于c - 表格长度运算符的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18200915/

相关文章:

c++ - SQLite 中的并发访问

java - 为什么流畅的实现比非流畅的实现慢?

c++ - 定义变量时出现奇怪的错误

windows - Luasql 和 SQLite?

list - Lua - 如何识别一个列表中的任何值不存在于另一个列表中的位置

使用 OpenSSL 在 Solaris 上编译 C 文件包括

c - 在 C 中编程倒金字塔

objective-c - 目标 - C - << 在枚举中的使用

java - 在 Activity 之上打开 fragment 的最佳实践是什么

php - 在 PHP 中使用正则表达式作为请求处理程序是否不好?