我想知道 Lua 表正在使用多少内存——无需遍历表内容并计算使用情况。是否有 Lua 5.1 函数或 3rd 方库可以帮助解决这个问题。
问问题
11244 次
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 回答