Cocos2d iphone cocos2d:alloc ccsprite内存4MB,作为子级添加到场景内存=11MB

Cocos2d iphone cocos2d:alloc ccsprite内存4MB,作为子级添加到场景内存=11MB,cocos2d-iphone,addchild,ccsprite,Cocos2d Iphone,Addchild,Ccsprite,我从helloworld模板开始。 添加一些菜单并启动性能工具->分配。 结果:1.9MB 好的,空场景是2MB 现在添加了实例变量ccsprite,该变量已用图像1024x1024初始化 CCsprite *test=[CCSprite spriteWithFile:@"img1024x1024.png]; 并启动性能工具->分配。 结果:6MB 好的,内存中的图像是4MB,+2MB的空图像 现在添加到申与 [self addChild:test]; 性能工具->分配。 结果:11MB 这

我从helloworld模板开始。 添加一些菜单并启动性能工具->分配。 结果:1.9MB 好的,空场景是2MB 现在添加了实例变量ccsprite,该变量已用图像1024x1024初始化

CCsprite *test=[CCSprite spriteWithFile:@"img1024x1024.png];
并启动性能工具->分配。 结果:6MB 好的,内存中的图像是4MB,+2MB的空图像 现在添加到申与

[self addChild:test];
性能工具->分配。 结果:11MB 这正常吗? 我小时候添加的每一个精灵都会使我的内存使用率翻倍?
感谢添加一个精灵,并认为每个精灵将添加相同数量的内存分配,这是不符合逻辑的。考虑以下事项:

您可能正在使用相同的纹理 一次又一次,哪一次不会 完全可以增加记忆。 无法加载多个1024x1024精灵 根本不是正常的行为。 您正在加载的图像可能不正确 压缩了很多。 取决于您所使用的应用程序 使内存使用率降低可能不太可能 一个问题。
如果您真的担心内存使用,我会添加适当数量的精灵,缩小应用程序将要使用的适当大小,然后添加它们并再次检查仪器。

也许我玩得不好。也许我解释得不好。我正在做一个测试:只有一个精灵,就像背景一样,我选择了一个大图像,这个大图像的内存量是真实可见的。当我分配ccsprite*测试时,分配工具的内存量是我期望的:4MB用于未压缩的png。没关系。我没有想到的是,如果我把童年的记忆添加到场景中,为什么记忆量会增加这么多?我想我已经很清楚了。但是你的测试并不是一个真实的例子,你最好还是按照建议得到有效的结果。我发现cocos2d制作了两个malloc,下面是堆栈树的链接:它们看起来来自非常不同的领域,我仍然建议尝试一些你将要使用的图像大小的图片,并进行调查。