这是我的代码示例:
“hello”字符串是否丢失并形成内存泄漏?
谢谢
这是我的代码示例:
listOfPeople = {}
listOfPeople["test"] = "hello"
listOfPeople = nil
“hello”字符串是否丢失并形成内存泄漏?
谢谢
这是我的代码示例:
listOfPeople = {}
listOfPeople["test"] = "hello"
listOfPeople = nil
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
从结果可以看出,解释器所使用的内存增加了(因为其中包含一个表和两个字符串),当这些元素被垃圾回收后,内存使用量会减少。
"test"
和"hello"
是字面字符串,只有在封闭函数原型被收集时它们才会被回收。 - siffiejoe