我正在开发一款 iPhone 游戏,它会收到我没有足够经验来解释的内存警告。我一直在看一些 iTunesU 教程,但我仍然不是很擅长这个..
我在运行游戏时收到了各种内存泄漏,我想了解如何正确解释 Instruments 中的堆栈跟踪显示。
我附上了 ObjectAllocation 工具输出的屏幕截图 。即使我缩放过滤器,我也无法过滤 ObjectSummary 中的数据。
当初始化 GameScene 并加载所有数据(ParallaxBackground、CCSpriteBatchNode)并创建 Sprite 和子弹帧(在 spriteFrames 的 CCArray 中)时,内存使用量的峰值发生在1中。
蓝色的大峰值只是在加载时,但应用程序冻结,然后在一段时间后崩溃,从图表中我看到内存使用量(蓝色条)已经下降..所以我不安静地明白这一点。此外,每当我尝试使用泄漏工具时,应用程序就会崩溃..
我知道对于有经验的人来说这是一个非常愚蠢的问题,但我只需要一些额外的帮助才能开始使用这个工具集。
我认为内存问题是由于我在精灵缓存类中分配的精灵造成的,但我对此不确定,因此想使用 Instruments 对此进行调查,但无法找出如何查看导致内存警告的对象和如何访问堆栈跟踪..
PS:我在第 4 代 iPod 上运行,我使用 Cocos2D 作为库
编辑:我也不明白为什么如果 Live Bytes 只有 1.01 MB,应用程序会崩溃,为什么我仍然会收到内存警告(请参阅黑旗)。是由于某些指针引用了某个空变量还是由于过多的内存分配?1.01 MB 对我来说似乎并不多..
编辑 2:按照 Marion 的建议,我使用了 Activity Monitor 并意识到有效的实际内存使用量为 55.39 MB。我误解了“实时字节”这个词。我将尝试进一步深入研究这一点,并且暂时不接受这个问题,以便让其他人做出贡献。如果我在一两天内没有任何其他答案,我会将当前答案标记为已接受。谢谢!
非常感谢!