即使我的应用程序仅分配20 MB的内存并且显然没有泄漏,我的内存警告也很低(见下图)。我想知道这是否是由于我正在使用的某些iOS版本(部署目标iOS 5.0并在iPod touch第4代版本5.0.1(9A405)上运行)。
在模拟器中,这似乎不会出现。
有什么建议吗?
编辑:This is a similar question我发现但没有使用Cocos2D。到目前为止,这个问题没有答案。
答案 0 :(得分:0)
从屏幕截图中可以清楚地看出,分配频率明显上升,我会说是5倍或更多。这意味着您的应用程序在短时间内使用100多MB内存,而大多数时候它可能只使用20 MB。
单击其中一个峰值上方的时间图,查看该点的内存使用情况,以及哪些对象使用的内存最多。内存警告可能会比尖峰晚一点发生,因此不要依赖于它们的确切时间,但您可以看到警报在内存使用量激增后不久发生。
Read this article学习一些减少内存使用量峰值的技巧。具体来说,按照从最大到最小的顺序加载纹理会有所帮助,就像使用.pvr.ccz图像文件格式一样。避免使用JPG图像,它们在加载时会增加大量内存开销(因此加载速度比其他格式慢很多)。