内存不足问题 iOS

Out of Memory issue iOS

在我的 iOS 应用程序中,我 运行 正在使用 instruments 工具查看分配的内存。在应用程序中,我调用了 CoreData 并使用它来创建一个使用 Apple 的 ResearchKit 的调查。每次我 运行 一个新的,我都会看到 'persistant bytes' 的数量增加。当应用程序 运行 时,每当它多次 运行 时,应用程序最终会关闭。

我可以使用 Fabric 的 Crashylitics 看到发生了内存不足会话。

查找和修复似乎保留的内存的最佳方法是什么?

您的屏幕截图未显示任何内存泄漏,因此您应该从使用分配工具开始,其图表在您的屏幕截图中。

首先设置内存使用率峰值的检查范围。在图表中单击并拖动以设置检查范围。您会注意到检查范围外的图形颜色变为灰色。此时,您关注的是内存使用量激增的位置。

要找到代码中导致内存使用量增加的位置,请单击图表下方的跳转栏并选择“调用树”,切换到调用树视图。反转调用树和隐藏系统库可以更容易地在调用树中找到您的代码。单击 window 底部的调用树按钮以反转调用树并隐藏系统库。

如果您在调用树中找到分配大量内存的函数,您可以双击它以显示分配内存的代码行。

您可以用来分析内存增长的另一个工具是分配工具的生成。 运行 您的应用程序,暂停,然后单击“标记生成”按钮创建生成。重复创建多代。从跳转栏中选择 Generations 以查看一代又一代的内存增长情况。