Xcode内存图 – 显示增加的内存使用 – 它显示了什么?

当在xcode 6(也可能是5)中观看debugging图时,运行我的应用程序时,内存使用量不断上升,因为我在屏幕上放置了更多的某个对象,并为其运动添加了animation。 当我删除它似乎并没有减less。 一旦删除,我相信没有更多的参考。

见截图: http : //i.stack.imgur.com/SnhbK.png

但是,当我使用工具来确定发生了什么事时,只有大约12mb的持续存在,并且总字节数继续上升。

见截图: http : //i.stack.imgur.com/VBwce.png

这是正常的行为? Xcode中的图表究竟是什么? 我可以俯视吗?

在乐器中,我将Allocation Lifespan设置为“All Allocations and Allocation Type”(所有分配和分配types)设置为“所有堆”和“匿名VM”,以获得上述屏幕截图。

UPDATE

通过使用活动监视器运行仪器,我能够看到“实际内存”以与Xcode中显示的速度相同的速度增长。 @Mark Szymczyk指出,OpenGL ES纹理内存分配没有显示在Allocations工具中。

通过在Cocos2D 3.1中定期清除纹理caching,内存的使用一直回落到18mb左右,并且随着我添加更多的sprite而再次增加。

[[CCDirector sharedDirector] purgeCachedData]; 

学分去马克Szymczyk指着我在这个方向 – 谢谢!

看看你的屏幕截图,Xcode图表可能会显示相当于仪器屏幕截图中“总字节数”的列。 当你删除一个对象时,持久字节会减less,但是总字节数不会。 这将解释为什么内存使用永远不会在Xcode图表中下降。

Instruments中的Persistent Bytes列是您应该查看以确定您的应用程序的内存使用情况。