Memory 调用collectgarbage(';count';)会增加lua中的内存使用率
我是lua的初学者。我正在尝试分析我的应用程序的内存使用情况。当我从LuaRepl重复调用collectgarbage(“count”)时,返回的值会不断增加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
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块也会分配内存。每次在命令行上执行代码时都会发生这种情况。