这是我的代码示例:
listOfPeople = {}
listOfPeople["test"] = "hello"
listOfPeople = nil
“hello”字符串是否丢失并形成内存泄漏?
谢谢
最佳答案
不,这不应该导致泄漏(假设 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
如您所见,解释器使用的内存增加(用于表和其中存储的两个字符串),然后在用于这些元素的内存被垃圾回收时返回。
关于lua - 我的 lua 代码中有内存泄漏吗? (lua 表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39049496/