为什么4 MB利用率和320 MB免费的内存警告?

时间:2014-09-02 22:15:59

标签: ios objective-c cocoa-touch memory memory-management

我正在测试附加到Xcode 5.1.1的运行iOS 7.1的iPhone 4。我不明白为什么我得到内存警告甚至崩溃当乐器显示我的应用程序只使用几兆字节并且有足够的内存空闲(见附件)。有什么想法吗?

Memory Utilization of App while Receiving Warnings

更新

在仪器中,正如我所怀疑的那样,我没有发现任何泄漏,但“匿名虚拟机”大小似乎过大并且充满了图像数据。我的应用中的每个表格单元格都显示JPEG。也许我应该预先缩放这些图像,这是大型匿名VM大小的原因...更多的调查要做。

Instruments Allocations

2 个答案:

答案 0 :(得分:3)

事实证明,每个表格单元格中UIImageViews中显示的图像都以完整大小存储在内存中,而不是缩放大小(UIImageView的大小)。这只出现在" Anonymous VM"在Instruments中(因为iOS只在应用程序堆中存储对图像的引用,而实际的图像缓存在系统内存中),而不是Xcode中显示的基本内存使用情况。我通过预先缩放我的图像来解决这个问题,然后将它们放入表视图单元格的UIImageViews中。没有泄漏。

答案 1 :(得分:1)

仪器有时对使用的实际内存不精确。测量的最佳方法是在控制台上打印内存使用情况。

我在这个帖子上找到了代码:Programmatically retrieve memory usage on iPhone