linux– 如何在lua中处理这个内存泄漏?

linux– 如何在lua中处理这个内存泄漏?,第1张

概述我的机器是mac mini(2011)osx10.7.4首先.我从lua.org下载lua-5.2.2,解压缩它,然后$make macosx $make install 然后我跑了$lua Lua 5.2.2 Copyright (C) 1994-2013 Lua.org, PUC-Rio > 现在的内存使用量为816KB(来自Activity

我的机器是mac mini(2011)osx10.7.4

首先.我从lua.org下载lua-5.2.2,解压缩它,然后

$make macosx$make install

然后我跑了

$luaLua 5.2.2  copyright (C) 1994-2013 Lua.org,PUC-Rio> 

现在的内存使用量为816KB(来自Activity Monitor)

然后我输入以下代码用于malloc …

a = {}for i = 1,999999 do    a[i] = {}end

内存使用量增长到79.0MB

然后我输入下面的代码来表示dealloc …

a = nilcollectgarbage("collect")

内存使用量低至25.0MB

好.这是我的问题.

为什么剩下25MB?

如何释放或回收它们?

最佳答案我可以重现你的结果.我不确定活动监视器真的报告了什么,但Lua认为它已经释放了所有内存:

collectgarbage("collect")local m0=collectgarbage("count"); print(m0)a = {}for i = 1,999999 do    a[i] = {}endlocal m1=collectgarbage("count"); print(m1)a = nilcollectgarbage("collect")local m2=collectgarbage("count"); print(m2)

我得到了这个输出

22.5507812578906.5507812522.64453125

为什么Activity Monitor仍然报告25Mb打败了我.我认为这只是因为free将内存返回给进程,而不是返回 *** 作系统. 总结

以上是内存溢出为你收集整理的linux – 如何在lua中处理这个内存泄漏?全部内容,希望文章能够帮你解决linux – 如何在lua中处理这个内存泄漏?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/1046559.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-24
下一篇2022-05-24

发表评论

登录后才能评论

评论列表(0条)

    保存