我的lua代码中是否有内存泄漏? (卢表)

时间:2016-08-20 00:56:26

标签: lua

以下是我的代码的示例:

listOfPeople = {}
listOfPeople["test"] = "hello"
listOfPeople = nil

是“hello”字符串丢失并形成内存泄漏?

由于

1 个答案:

答案 0 :(得分:2)

不,这不应该导致泄漏(假设Lua解释器中没有错误),但是直到垃圾收集器运行其(完整)周期才释放内存。您可以使用以下脚本查看效果:

collectgarbage()
print(collectgarbage("count"))
listOfPeople = {}
listOfPeople["test"] = "hello"
print(collectgarbage("count"))
listOfPeople = nil
collectgarbage()
print(collectgarbage("count"))

使用Lua 5.2打印以下内容:

14.5107421875   523
14.6533203125   669
14.5107421875   523

正如您所看到的,解释器使用的内存增加了(对于表和存储在其中的两个字符串),然后在用于这些元素的内存被垃圾收集时返回。