1

我为 iPad 开发 cocos2d iOS 应用程序。当我测试内存泄漏和对象分配时,我的 Live Bytes 是稳定的, 但是当我运行 Activity Monitor 时,我看到我的应用程序的实际内存使用量每秒增加 0.02MB。

我想问这正常吗,有人遇到过类似的问题吗?

4

3 回答 3

1

这是完全合理的,因为 Cocos2d(至少 0.9.x 和 1.0 分支)倾向于自动释放所有内容。这可能会导致您在屏幕上循环生成大量精灵的情况下积累内存。如果您确实在自动释放并且没有泄漏,那么在您的循环中添加一个自动释放池可能是一个快速修复。也就是说,您实际上可能正在泄漏。

为了调试内存泄漏,我会从 Leaks Instrument 开始,也许还有 Allocations 工具。在 Xcode 中,点击Command+ I,或Product -> Profile

Xcode 构建菜单

打开探查器后,您将看到一个包含大量调试工具的菜单:

仪器选择菜单

选择泄漏后,您将看到这个方便的窗口,其中包含各种有用的信息:

在此处输入图像描述

最重要的是,您会以图表的形式看到内存分配和泄漏。在底部,您可以看到各种有用的信息,例如分配了哪些对象、使用了多少内存等等。

有关使用仪器进行 Xcode 调试的完整处理,请查看这个方便的 Apple 开发人员视频(需要登录)

于 2012-11-05T14:21:25.670 回答
1

一年后,我有这个确切的问题。事实证明,我启用了僵尸,这是我每秒增加内存的原因。

于 2013-12-05T03:52:06.263 回答
0

我记得我有这个问题,因为我记录了调试消息!

我在循环周期(每帧)中记录此消息,这就是内存增加的原因!

请清除或评论所有日志消息,这将解决您的问题:)

于 2015-04-17T18:18:05.593 回答