Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Xcode内存图-显示不断增加的内存使用-它到底显示了什么?_Ios_Objective C_Xcode_Xcode Instruments - Fatal编程技术网

Ios Xcode内存图-显示不断增加的内存使用-它到底显示了什么?

Ios Xcode内存图-显示不断增加的内存使用-它到底显示了什么?,ios,objective-c,xcode,xcode-instruments,Ios,Objective C,Xcode,Xcode Instruments,当我在xcode 6(也可能是5)中观看调试图时,当我运行我的应用程序时,内存使用会继续增加,因为我在屏幕上放置了更多的特定对象,并为其移动设置动画。当我移除它时,它似乎没有减少。一旦删除,我相信没有更多的参考他们 请参见屏幕截图: 然而,当我使用仪器试图识别正在发生的事情时,只有大约12mb的数据持续存在,总字节继续增加,正如预期的那样 请参见屏幕截图: 这是正常的行为吗?Xcode中的图形到底显示了什么?我是不是忽略了什么 在Instruments中,我将分配寿命设置为所有分配,并将分配

当我在xcode 6(也可能是5)中观看调试图时,当我运行我的应用程序时,内存使用会继续增加,因为我在屏幕上放置了更多的特定对象,并为其移动设置动画。当我移除它时,它似乎没有减少。一旦删除,我相信没有更多的参考他们

请参见屏幕截图:

然而,当我使用仪器试图识别正在发生的事情时,只有大约12mb的数据持续存在,总字节继续增加,正如预期的那样

请参见屏幕截图:

这是正常的行为吗?Xcode中的图形到底显示了什么?我是不是忽略了什么

在Instruments中,我将分配寿命设置为所有分配,并将分配类型设置为所有堆和匿名VM,用于上面的屏幕截图

更新

通过运行带有活动监视器的仪器,我能够看到“真实内存”的增长速度与Xcode中显示的速度相同@MarkSzymczyk指出OpenGL ES纹理内存分配不会显示在分配工具中

在cocos2d3.1中,通过定期使用以下命令清除纹理缓存,内存使用量会持续下降到18mb左右,并随着我添加更多精灵而再次增加

[[CCDirector sharedDirector] purgeCachedData];

感谢Mark Szymczyk为我指明了这个方向-谢谢

查看您的屏幕截图,Xcode图可能显示的是仪器屏幕截图中的Total Bytes列的等效值。删除对象时,持久字节数将减少,但总字节数不会减少。这就解释了为什么Xcode图形中的内存使用率从未下降


Instruments中的Persistent Bytes列是您确定应用程序内存使用情况时应该查看的内容。

嗨,JoGoFo,您在项目中启用了Zombie吗?嘿,学生,我想说的是Zombie已关闭。还有其他想法吗?嗨,你在你的项目中使用了大量的图片吗?不是大量的图片,不,少于10张。我更好奇的是,我是否正确地看待这个问题,或者我是否遗漏了一些问题。这是我收集到的,但是有人能够确认这就是Xcode图形显示的内容吗?我还想知道Xcode是否显示分配的内存块,也许我有某种碎片问题?分配工具不记录OpenGL ES纹理分配。Xcode的内存图可能会显示分配工具不会显示的纹理内存分配。感谢Mark,这正是问题所在。定期清除纹理缓存可以修复此问题。我会更新我的问题的更多细节,并接受您的回答-再次感谢@MarkSzymczyk我认为说Xcode规范图显示的是总字节是不正确的。我找不到官方文档,但该值几乎总是与活动监视器的当前总内存列中的值相匹配。指出仪器不显示OpenGL ES纹理这一事实听起来是一个更合理的正确答案。但现在我认为这个答案是误导性的。