-1

我正在使用“活动监视器”来测量我的应用程序的性能,并注意到我使用来自 CCSpriteFrameCache 的精灵帧分配的精灵数量确实会影响应用程序的实际内存使用情况。

例如,如果我只加载具有 2048*2048 像素纹理表的 CCSpriteFrameCache,则应用程序的实际内存使用量增加了 16MB。每当我分配甚至 30 个敌人精灵时,将 textureatlas.png 文件添加到 CCSpriteBatchNode 并使用帧分配 CCSprites,实际内存只会增加非常小的(小于 1MB)。我不安静地明白这一点。

我想知道CCSpriteFrameCache 是如何工作的,以及是否应该使用精灵文件而不是纹理图集来优化实际内存使用。为什么以及如何使用纹理图集和 CCSpriteFrameCache 优化 OpenGL 性能?有没有人找到解释这个主题的好文章?

此外,在编程指南中有一些建议使用 PVR 格式来优化 2 位和 4 位纹理的内存使用(请参阅链接)。我有插画家制作的顶级艺术品,如果我尝试压缩它看起来很垃圾。什么时候可以考虑使用PVR 图像格式?这有什么好的例子吗?

非常感谢你!

4

1 回答 1

1

CCSprite 实例只是具有一组参数的对象。这些参数之一是指向要使用的纹理的指针。因此,纹理只需要在内存中放置一次。然后任何数量的精灵都可以使用它而不会占用大量内存。

于 2012-06-16T14:41:27.457 回答