当我在xcode 6(可能也是5)中观察调试图表时,运行我的应用程序时,随着我在屏幕上放置更多某个对象并动画移动它,内存使用量继续上升。当我将其移除时,似乎不会减少。一旦被移除,我相信它们没有任何引用。
请参见截图:http://i.stack.imgur.com/SnhbK.png 然而,当我使用Instruments来尝试确定发生了什么时,只有大约12mb持续存在,并且Total Bytes继续上升,正如预期的那样。
请参见截图:http://i.stack.imgur.com/VBwce.png 这是正常行为吗?Xcode中的图表到底显示了什么?我有什么遗漏的地方吗?
在Instruments中,我将Allocation Lifespan设置为All Allocations,Allocation Type设置为All Heap和Anonymous VM,如上所示。
更新:
通过在 Activity Monitor 中运行 Instruments,我能够看到“实际内存”以与 Xcode 显示的速率相同的速度增加。@Mark Szymczyk 指出 Allocations 工具中不显示 OpenGL ES 纹理内存分配。
通过在 Cocos2D 3.1 中定期使用以下命令清除纹理缓存,内存使用量始终降至约18mb,并随着添加更多精灵而再次增加。
请参见截图:http://i.stack.imgur.com/SnhbK.png 然而,当我使用Instruments来尝试确定发生了什么时,只有大约12mb持续存在,并且Total Bytes继续上升,正如预期的那样。
请参见截图:http://i.stack.imgur.com/VBwce.png 这是正常行为吗?Xcode中的图表到底显示了什么?我有什么遗漏的地方吗?
在Instruments中,我将Allocation Lifespan设置为All Allocations,Allocation Type设置为All Heap和Anonymous VM,如上所示。
更新:
通过在 Activity Monitor 中运行 Instruments,我能够看到“实际内存”以与 Xcode 显示的速率相同的速度增加。@Mark Szymczyk 指出 Allocations 工具中不显示 OpenGL ES 纹理内存分配。
通过在 Cocos2D 3.1 中定期使用以下命令清除纹理缓存,内存使用量始终降至约18mb,并随着添加更多精灵而再次增加。
[[CCDirector sharedDirector] purgeCachedData];
感谢Mark Szymczyk指引我朝这个方向 - 谢谢!