Xcode仪器公司的分配工具相当多

我的应用程序崩溃了很多,原因是我很难理解。 没有那么多,它正在崩溃 – 它被一个外部的“未知”过程所杀:

Processes Name <UUID> rpages recent_max [reason] (state) test-app <....> 167111 167111 [per-process-limit] (frontmost) (resume) 

我可以理解,如果我分配了一大块内存,或者几亿个小块,但是我没有做出任何令人发指的事情。 仪器分析告诉我,应用程序只使用大约8 MB,偶尔加载一些大的内容时,高达13 MB左右。 没有任何exception的泄漏,应用程序通常很快就会死亡。

一个同事开始使用Activity Monitory在模拟器中运行时检查应用程序的内存使用情况,并注意到当我们开始使用某个库时,从大约70 MB(模拟器中的情况看起来有点不同)的内存猛增到800 MB 。 所以,我开始在模拟器而不是在设备上进行分析。 分配工具继续报告,该应用程序使用8兆MB,但VM跟踪器讲述了另一个故事:

仪器屏幕截图

所以…看起来VM Tracker能够看到Allocations没有的一些重要的内存使用。

为什么Allocations工具缺less这个应用程序正在使用的内存的99%?

更新:为了回应nielsbot的问题,我仔细研究了VM Tracker的信息,发现我在configuration中看不到的最大部分内存归功于Core Animation:

VM跟踪器截图

我认为虚拟机空间包括像共享框架和映射内存的东西,而分配可能不会…

我想常驻大小更接近实际使用的RAM数量。 纯虚拟机内存只能映射地址空间,而不是实际的物理内存消耗。

例如,在Safari浏览器,我看到1.92 GB的虚拟内存映射,但更接近549 MB的驻留,这是我认为是有道理的… 在这里输入图像说明