【问题标题】:Out of Memory issue iOSiOS 内存不足问题
【发布时间】:2019-03-18 01:39:51
【问题描述】:
在我的 iOS 应用程序中,我正在运行仪器工具来查看分配的内存。在应用程序中,我调用 CoreData 并使用它使用 Apple 的 ResearchKit 创建调查。每次我运行一个新的时,我都会看到“持久字节”数量的增加。当应用程序运行时,只要它反复运行多次,最终应用程序就会关闭。
我可以使用 Fabric 的 Crashylitics 看到发生了内存不足的会话。
寻找和修复似乎保留的记忆的最佳方法是什么?
【问题讨论】:
标签:
ios
memory-management
instruments
allocation
【解决方案1】:
您的屏幕截图没有显示任何内存泄漏,因此您应该从使用分配工具开始,其图表在您的屏幕截图中。
首先设置内存使用量达到峰值的检查范围。在图表中单击并拖动以设置检查范围。您会注意到检查范围之外的图形颜色变为灰色。此时,您需要关注内存使用高峰的位置。
要在代码中查找导致内存使用量增加的位置,请通过单击图表下方的跳转栏并选择调用树来切换到调用树视图。反转调用树和隐藏系统库可以更容易地在调用树中找到您的代码。单击窗口底部的调用树按钮可反转调用树并隐藏系统库。
如果您在调用树中发现分配大量内存的函数,可以双击它以显示分配内存的代码行。
您可以用来分析内存增长的另一个工具是分配工具的世代。运行您的应用程序,暂停,然后单击“标记生成”按钮以创建生成。重复创建多代。从跳转栏中选择 Generations 以查看一代又一代的内存增长量。