iOS内存使用量增加,找不到罪魁祸首

Nat*_*kin 11 xcode instruments ios afnetworking

我正在尝试使用AFNetworking 2.5下载大量图像并将它们传输到磁盘.根据Xcode中的内存监视器,这会导致无限制的内存增长(最终导致内存警告和强制退出) - 但使用分配工具分析内存使用情况会显示内存使用情况稳定.

我想在这里认为Xcode是错的,但为什么我的应用程序会被iOS杀死?

仪器显示这一点 - 峰值是核心数据查询,其余是图像下载 - 峰值约9.5MB,其余约8.5MB

仪器

我也尝试了快照分析 - 它显示了一点点增长,但远不及Xcode报告的数量

快照分析

Xcode的内存监视器显示了这一点 - 每次迭代增加了多个MB.

Xcode内存使用情况

有没有办法让仪器向我展示Xcode看到的东西?或者有没有更好的工具来找出所有这些记忆的去向?

谢谢!

mat*_*att 23

根据Xcode中的内存监视器,这会导致无限制的内存增长(最终导致内存警告和强制退出) - 但使用分配工具分析内存使用情况会显示内存使用情况稳定.

相信仪器和分配信息 - 而不是 Xcode中的内存监视器.内存监视器图表完全无关紧要.忽略它.

这不是因为Xcode中的内存监视器是无用的或错误的.这是因为调试版本的内存管理与发布版本完全不同(Instruments使用发布版本).在Swift中尤其如此(你没有说你是否使用Swift).

在设备上观察内存使用情况,并在发布版本中观察.否则,你将完全被误导.

  • 这肯定是这样的。我们让应用程序在发布版本中运行了数千次有问题的代码迭代,完全没有问题。尽管如此,将 Profile 方案设置为“调试”会导致发布版本被配置,这似乎仍然很奇怪。 (2认同)