Objective c Cocos2d中内存管理的建议限制?

Objective c Cocos2d中内存管理的建议限制?,objective-c,memory-management,cocos2d-iphone,Objective C,Memory Management,Cocos2d Iphone,Cocos2d中的图像是否有建议的限制,是否太大,占用太多内存?是否有一些规则,以维度或Kb为单位,以避免减慢游戏速度?(对于背景图像或我的角色的图形(即使我使用批处理节点)?) 据我所知,谢谢你的回答。。大小为1024x1024的批处理节点占用大约4 MB的空间,这只是纹理内存。。并且应用程序的最大限制为24MB。所以当你到达这个24MB的空间时,游戏会变慢,然后崩溃。为了避免速度慢,我一次最多使用4个批处理节点,即16MB。剩下的8MB用于变量和其他数据。在使用更多批处理节点之前,我曾经清理

Cocos2d中的图像是否有建议的限制,是否太大,占用太多内存?是否有一些规则,以维度或Kb为单位,以避免减慢游戏速度?(对于背景图像或我的角色的图形(即使我使用批处理节点)?)


据我所知,谢谢你的回答。。大小为1024x1024的批处理节点占用大约4 MB的空间,这只是纹理内存。。并且应用程序的最大限制为24MB。所以当你到达这个24MB的空间时,游戏会变慢,然后崩溃。为了避免速度慢,我一次最多使用4个批处理节点,即16MB。剩下的8MB用于变量和其他数据。在使用更多批处理节点之前,我曾经清理内存并删除未使用的批处理节点。。我不知道4s的内存限制,但对于iPhone4,这就是我学到的。
使用这种逻辑,我曾经顺利地运行我的游戏

图像和纹理的尺寸取决于您支持的设备。旧设备支持小层,我认为大小为2048x2048。我认为目前的设备不存在这样的限制

对于大型映像,您肯定希望使用批处理节点,因为它们经过测试,可以在处理大型映像时获得最大的性能增益。虽然一般来说,尽可能多地使用它们是个好主意

至于你能加载多少,这实际上取决于设备。新的iPad有1GB的内存,并设计为有更多的可用内存来存储大型图像。第一代iPad有1/4的内存,根据我的经验,当它使用大约100 MB的内存时,我开始看到应用程序崩溃(使用仪器确认)

诀窍是只使用当前应用程序操作所需的内存,然后在移动到新场景或新的图像/精灵/纹理集时释放它。例如,可以有非常大的平铺纹理,其中只有最靠近视口的平铺加载到内存中。从技术上讲,如果从内存中删除视图中屏幕上看不到的部分,您可能会拥有一个无限大小的视图,该视图将永远延伸


当然,在处理大量资源时,请确保您的应用程序代理对其内存警告做出适当响应。

首先,内存使用与性能的关系非常、非常、非常小。你可以用纹理填满整个记忆,游戏不会在意。只有当你渲染它们时,它们才会有不同。然后,它只关系到你用纹理填充的屏幕区域有多大,覆盖、批处理、旋转、缩放、着色和alpha混合的程度。这些是影响纹理渲染性能的主要因素。内存使用起着非常不重要的作用

你可能对我做的事和将军感兴趣。两者都有测试项目

关于最大纹理大小,请看我书中的表格:

请注意,iPhone和iPhone 3G设备的纹理内存限制为24 MB。第三代(iPhone3GS)和更新的设备不再有这种限制。还请记住,虽然设备可能安装了256MB的内存,但可供应用程序使用的内存将大大减少

例如,在iPad(第1代)上,建议不要使用超过100 MB的内存,最大可用内存峰值约为125 MB,内存警告最早显示为80-90 MB内存使用量

在iOS 5.1中,苹果还增加了iPad2的最大纹理尺寸。最安全和最常用的纹理大小是2048x2048(用于视网膜纹理),1024x1024(用于标准分辨率纹理)


ipodtouch设备不在表中,因为它们实际上与同一代的iPhone型号相同,但不容易识别。例如,iPod touch第三代包括具有8、16和32GB闪存的设备,但8GB型号实际上是第二代硬件。

为什么说应用程序的内存限制为24MB?限制由设备决定,现代设备具有更多内存。使用仪器,我可以看到我正在构建的应用程序在运行时使用了大约80MB的内存,这就是为什么我提到iPhone4的24MB内存。我不知道4S的情况。。更多的是我学到的纹理记忆。仪器中的内存甚至达到了150MB。。我认为仪器中的内存与实际使用的内存不同。我并没有真正意识到仪器上的内存分配。我很确定这不是正确的信息。iPhone4上的24MB限制?我不这么认为。您可以在iPhone4上运行内存使用率为4倍的应用程序,而不会出现任何问题。而且Instruments确实正确地报告了内存使用情况,否则它将不是一个有用的工具;因此,对于32位1024x1024文件,需要大约4MB的纹理内存。。。检查此链接和第二个答案。。24 MB纹理内存限制仅在第1代和第2代设备上存在。iPhone 3GS和更新版本没有这样的限制,它们只受可用内存的限制。谢谢你的回答,你的博客看起来真的很棒,我会查看文章的!非常感谢你!嗨,我能问你一个问题吗?我听说每个设备都有正常/选中/禁用的图像。。。为每个设备创建所有图像时,您会做什么?是否为图像的每个正常/选定/禁用版本创建
-hd
图像和标准图像?谢谢again@Paul你解决这个问题了吗?我问了一个类似的问题()以及另一个问题,LearnCos2D建议我关闭CCFileUtils加载程序,停止强制它同时需要hd和非hd文件。。希望能有帮助。