VM Tracker 捕获的脏大小与 Xcode 调试器模式或内存图捕获的脏大小之间似乎存在差异。
我发现 VM Tracker 中的驻留内存大小接近 250MiB,Xcode 调试器中的已用内存指标约为 730MB。
因此,我捕获了内存图并比较了 VM Tracker 和内存图之间的指标。
我发现的第一件事是 Xcode 调试器的内存使用量指标实际上是内存占用量(脏 + 脏压缩的未压缩大小)。 ()
然后我发现 VM Tracker 和 Memory Graph 之间的脏大小或驻留大小有很大不同。
例如,MALLOC_LARGE 的脏大小在内存图中为 125M,但在 VM Tracker 中约为 39MiB。
我很好奇为什么两个分析器的结果不同以及我应该更信任哪个工具的结果。
Xcode 的调试器和 Instruments 报告存在差异的可能原因是 Xcode 的调试器正在使用项目的调试版本,而 Instruments 正在使用发布版本。调试版本会向您的应用程序添加一些内容,以便更轻松地调试应用程序。
我相信 Instruments 所报告的内容,因为发布版本是您的客户将使用的版本。