首页 > 解决方案 > iOS 内存不足问题

问题描述

在我的 iOS 应用程序中,我正在运行仪器工具来查看分配的内存。在应用程序中,我调用 CoreData 并使用它使用 Apple 的 ResearchKit 创建调查。每次我运行一个新的时,我都会看到“持久字节”数量的增加。当应用程序运行时,只要它反复运行多次,最终应用程序就会关闭。

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

在这里你可以看到跳转和分配仍然存在 寻找和修复似乎保留的记忆的最佳方法是什么?

标签: iosmemory-managementinstrumentsallocation

解决方案


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

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

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

在此处输入图像描述

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

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


推荐阅读