lua - 我的 lua 代码中有内存泄漏吗? (lua 表)

标签 lua

这是我的代码示例:

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/

相关文章:

lua - 将外部指针包装到 SWIG 数据结构中

python - 中文字符在lua loadstring中吃掉其他字符

windows - 在Windows 8中添加Lua路径名

lua - 语言是 Lua,单词是 "embedded"

ubuntu - 更改redis-server使用的lua版本

lua - 清除变量以释放 Lua/Torch 中的内存(GPU 或 CPU)

android - 在 Corona 小部件中显示在模拟器中但不在设备上

lua - 电晕 SDK : Restart an app only when user press "home"

lua - 如何在 Lua 脚本中获取当前的 UTC 时间?

lua - 如何将表转储到控制台?