2014-09-02 46 views
5

我正在测试附加到Xcode 5.1.1的运行iOS 7.1的iPhone 4。我不明白为什么当仪器显示我的应用程序仅使用几兆字节并且有足够的内存空间(请参阅附件)时,为什么会收到内存警告甚至崩溃。有任何想法吗?为什么有4 MB利用率和320 MB空闲的内存警告?

Memory Utilization of App while Receiving Warnings

更新:

在文书,我怀疑,我没有发现泄漏,但“匿名VM”大小似乎过大以及填充的图像数据。我的应用中的每个表格单元都显示一个JPEG。也许我应该预先缩放这些图像,这是大型匿名虚拟机大小的原因......更多调查要做。

Instruments Allocations

+1

你可能会有很多泄漏......你有没有在仪器中检查过这个问题?运行静态分析器? – 2014-09-02 22:29:10

+0

如果我有很多泄漏,随着时间的推移会不会随着内存的增加而显示出来(参见附件截图)? – davecom 2014-09-02 22:32:44

+0

我不这么认为,不,我可能是错的,如果是的话,其他人会纠正我。但是,内存泄漏的整个想法是,指向某个内存地址的指针已经超出范围并被销毁,没有释放内存,所以直觉上我并不认为泄漏的内存会被工具显示为“拥有“通过你的应用程序...无论如何,为什么不检查?无论如何,这是我们应该经常做的事情。 – 2014-09-02 22:44:17

回答

3

原来在的UIImageViews显示的图像中的每个,并在他们的全尺寸,而不是缩放后的大小(的UIImageView的大小)的每个表细胞在被存储在存储器。这只出现在Instruments的“Anonymous VM”中(因为iOS只在应用程序堆中存储对图像的引用,而实际的图像缓存似乎在系统内存中),而不是Xcode中显示的基本内存使用情况。我通过在将图像放入表格视图单元格的UIImageView之前对图像进行预缩放来解决此问题。没有泄漏。

相关问题