我正在使用启用了 ARC 的 Cocos2d 2.0。我的游戏是一个随机生成的游戏,所以我需要在游戏中间的场景中加载/卸载纹理(spritesheet-batchnode)。我正在尝试从文件中删除 spriteframes 并删除我希望在中间卸载的 spritesheet 的键的纹理。当我在卸载工作表后使用 dumpcachedtextureInfo 时,该 spritesheet 纹理不会显示在 dumpcachedtextureinfo 的日志中。
但是当我使用仪器/事件监视器来分析我的应用程序时,在卸载纹理和 Sprite 表后,实际内存使用量并没有下降。
有没有办法让 dumpcachedtextureinfo 不显示仍在内存中的纹理?
此外,我在分配中的 livebytes 列显示 4 MB。
同样,当我在不同的地方读到分配不显示纹理内存时。
所以我的分配实时字节列说 4 MB,我的总纹理内存如 dumpcchedtextureinfo 日志所示显示为 84MB,但内存监视器仍然显示实际内存使用量为 84+Spritesheet 大小+实时字节
我无法理解这种差异?
我没有退出场景,所以我不确定 ARC 是否保存了内存还是什么?
最佳答案
一些对你有用的笔记
关于memory-management - 估算 Cocos2d 游戏的内存使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15574697/