-4

★★★★★代码点击这里!!!★★★★★"></p> <p>当我按下'btn'时内存从80M上​​升到240M。我按下'btn2'删除了object(self.sprite) 包含了很多lua表,但是内存没有下降。</p> <p>这段代码有什么问题?还是lua的bug?</p> <p>我用的是cocos2dx -3.8.1/xcode7/ios 模拟器。</p> <pre><code>local MainScene = class(

4

1 回答 1

1

这可能不是内存泄漏。您可以使用 Lua 垃圾回收方法来查看 Lua 分配给这些结构的内存量。例如,尝试以下操作:

collectgarbage("count") -- #1 returns something like 2574.62890625 (in Kb)
-- allocate and release memory
collectgarbage() -- collect memory
collectgarbage()
collectgarbage("count") -- #2 check the amount of memory

您应该看到在 1 和 2 中使用的内存量大致相同(假设分配的所有内容都已释放,因为它没有任何持有引用的内容),但通常您不应期望操作系统报告的内存会消失由于碎片化,减少到原始数量。你应该期望 Lua 继续重用它释放的内存,所以如果你再次分配相同的结构,内存总量将保持大致相同。

我怀疑 Lua 中是否存在内存泄漏,除非您可以在不涉及 cocos2dx API 的更简单的脚本上演示它。

于 2015-10-27T15:18:06.993 回答