5

我想知道 Lua 表正在使用多少内存——无需遍历表内容并计算使用情况。是否有 Lua 5.1 函数或 3rd 方库可以帮助解决这个问题。

4

4 回答 4

8

您可以通过在整个代码的适当位置(例如插入操作之前和之后)调用collectgarbage("count")或)来监控 Lua 的内存使用情况。gcinfo(没有简单的方法可以获取表格的大小。

于 2010-03-18T14:42:28.803 回答
2

此任务没有功能。你为什么要这样做?你想达到什么目的?

于 2010-03-17T12:59:26.093 回答
0

像这样这样的东西不会有帮助吗?

2016 年更新:另见:http ://www.lua.org/wshop15/Musa2.pdf

于 2010-03-18T18:52:50.937 回答
0

你可以这样做:

local pre = collectgarbage("count")
local table = {1, 2, 3, 4, 5}
local aft = collectgarbage("count")

local probablyTableSize = aft - pre
print(probablyTableSize)

但请注意,我不太确定这在普通测试环境之外是否准确,背景中有很多事情发生。table当我们声明变量时,添加/删除更多内存的可能性很小。

这可能是多余的,但在这种情况下你可以做的是获得多次尝试的平均值或中值,看看会发生什么。

于 2021-04-22T00:54:22.627 回答