为什么在这种情况下,调用collectgarbage(“ count”)时lua堆内存会增加?

问题描述 投票:1回答:2
运行以下lua代码:

collectgarbage("collect") collectgarbage("stop") local a,b = {},{} local m0 = collectgarbage("count") local m1 = collectgarbage("count") local m2 = collectgarbage("count") local m3 = collectgarbage("count") local m4 = collectgarbage("count") print(m0 * 1024) print(m1 * 1024) print(m2 * 1024) print(m3 * 1024) print(m4 * 1024)

我得到了这些:

23907.0 23907.0 23907.0 24515.0 24515.0

使用Lua 5.3和OSX Mojave。

我很困惑为什么在三次调用collectgarbage("count")之后内存使用量会增加。

谢谢。

运行以下lua代码:collectgarbage(“ collect”)collectgarbage(“ stop”)本地a,b = {},{}本地m0 = collectgarbage(“ count”)本地m1 = collectgarbage(“ count”)本地m2 = collectgarbage(“ count” ...

memory lua garbage-collection
2个回答
0
投票
运行collectgarbage()调用的序列涉及在全局环境的表中搜索该函数,并将其与字符串参数一起推入堆栈。Lua将collectgarbage报告推送到VM状态的堆栈中。

0
投票
每个打印将要打印的数字转换为字符串。这些新字符串需要内存。
© www.soinside.com 2019 - 2024. All rights reserved.