我想知道Lua表使用了多少内存 - 没有遍历表内容并计算使用量。是否有Lua 5.1功能或第三方库可以帮助解决这个问题。
答案 0 :(得分:8)
您可以通过在整个代码中的适当位置(例如插入操作之前和之后)调用collectgarbage("count")
或gcinfo(
)来监控Lua的内存使用情况。获得一张桌子的大小并不是一件容易的事。
答案 1 :(得分:2)
此任务没有任何功能。你为什么要这样做?你想要实现什么目标?
答案 2 :(得分:1)
2016年更新:另请参阅:http://www.lua.org/wshop15/Musa2.pdf
答案 3 :(得分:0)
你可以这样做:
local pre = collectgarbage("count")
local table = {1, 2, 3, 4, 5}
local aft = collectgarbage("count")
local probablyTableSize = aft - pre
print(probablyTableSize)
但请注意,我不太确定这是否在简单的测试环境之外准确,并且在后台进行了很多事情。当我们声明 table
变量时,可能会添加/删除更多内存。
这可能是多余的,但在这种情况下您可以做的是获取多次尝试的平均值或中位数,然后看看会发生什么。