Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我的lua代码中是否存在内存泄漏?(lua表格)_Lua - Fatal编程技术网

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

我的lua代码中是否存在内存泄漏?(lua表格),lua,Lua,下面是我的代码示例: listOfPeople = {} listOfPeople["test"] = "hello" listOfPeople = nil “hello”字符串是否丢失并形成内存泄漏 谢谢否,这应该不会导致泄漏(假设Lua解释器中没有错误),但在垃圾收集器运行其(完整)周期之前,内存不会释放。您可以通过以下脚本看到效果: collectgarbage() print(collectgarbage("count")) listOfPeople = {} listOfPeople

下面是我的代码示例:

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的实现本身泄漏,否则不会泄漏内存。实际上,由于
“test”
“hello”
是文本字符串,在收集封闭函数的原型之前不会收集它们。