Memory 调用collectgarbage(';count';)会增加lua中的内存使用率

Memory 调用collectgarbage(';count';)会增加lua中的内存使用率,memory,lua,profiling,torch,Memory,Lua,Profiling,Torch,我是lua的初学者。我正在尝试分析我的应用程序的内存使用情况。当我从LuaRepl重复调用collectgarbage(“count”)时,返回的值会不断增加 th> collectgarbage() 0 [0.0018s] th> collectgarbage('count') 856.8408203125

我是lua的初学者。我正在尝试分析我的应用程序的内存使用情况。当我从LuaRepl重复调用collectgarbage(“count”)时,返回的值会不断增加

th> collectgarbage()
0
                                                                      [0.0018s]
th> collectgarbage('count')
856.8408203125
                                                                      [0.0001s]
th> collectgarbage('count')
858.669921875
                                                                      [0.0001s]
th> collectgarbage('count')
860.345703125
                                                                      [0.0000s]
th> collectgarbage('count')
862.171875
                                                                      [0.0000s]

有什么具体的原因吗

感谢上面提到的@nicol Bolas和@egor skriptunoff


这是因为编译lua代码会分配内存,也因为字符串转换。

IMO,
collectgarbage('count')
不会从堆中分配内存,但将数字转换为字符串并打印到标准输出肯定会分配内存。这很有意义。我们是否可以验证这是额外内存使用的原因?
print(collectgarbage('count')、collectgarbage('count'))
打印两个相等的值。或者您可以在REPL:
th>collectgarbage('count')、collectgarbage('count')中键入此命令。
编译Lua块也会分配内存。每次在命令行上执行代码时都会发生这种情况。