5

我在启用ARC的情况下使用Cocos2d 2.0。我的游戏是一个随机生成的游戏,因此我需要在游戏中间的场景中加载/卸载纹理(spritesheet-batchnode)。我正在尝试从文件中删除spriteframes,并删除我希望在中间卸载的spritesheet的密钥的纹理。卸载工作表后,当我使用dumpcachedtextureInfo时,该spritesheet纹理不会显示在dumpcachedtextureinfo的日志中。估算Cocos2d游戏的内存使用情况

但是,当我使用仪器/活动监视器来分析我的应用程序时,真正的内存使用情况在卸载纹理和spritesheet后没有下降。

是否有一种方法,dumpcachedtextureinfo不会显示仍在内存中的纹理? 另外,分配中的我的livebytes列显示4 MB。

此外,当我在各种地方阅读,分配不显示纹理内存。

所以我分配住字节一栏写着4 MB,我总纹理内存与dumpcchedtextureinfo的日志显示的显示为84MB,但内存监视器剧照显示的实际内存使用率是84 + Spritesheet大小+直播字节

我无法理解这种差异?

我没有退出现场,所以我不确定ARC是否持有内存或什么?

+0

既然你已经在使用仪器,检查是否有任何大的大量的记忆仍然“活着”,可能还会泄露。除此之外,也许您正在查看永远不会减少的总分配列。 – LearnCocos2D 2013-03-23 00:31:13

+0

我关注活动监视器下的“Real Memory usage”指标。即使在卸载后它也不会减少。我不明白这是为什么? – user1847220 2013-03-23 06:15:34

回答

4

一些有用的笔记你

enter image description here

enter image description here

  • 要检查内存泄漏使用:仪器 - >泄漏 enter image description here
+0

我已经通过这个链接,是的,这是非常有帮助的。我的问题不是优化内存。我的问题是知道我的应用程序在某个时间使用的确切内存。 – user1847220 2013-03-23 06:14:41

+0

在仪器中你可以看到...希望你知道: - – Guru 2013-03-23 07:24:30

+1

也:选择分配,对象列表。搜索类名称(即CCTexture2D)。如果旁边有一个点,它仍然存在(在内存中)。查看从缓存中删除tex时是否发生了更改。 – LearnCocos2D 2013-03-23 10:07:18