ios - iOS 内存不足问题
问题描述
在我的 iOS 应用程序中,我正在运行仪器工具来查看分配的内存。在应用程序中,我调用 CoreData 并使用它使用 Apple 的 ResearchKit 创建调查。每次我运行一个新的时,我都会看到“持久字节”数量的增加。当应用程序运行时,只要它反复运行多次,最终应用程序就会关闭。
我可以使用 Fabric 的 Crashylitics 看到发生了内存不足的会话。
解决方案
您的屏幕截图没有显示任何内存泄漏,因此您应该从使用 Allocations 工具开始,其图表在您的屏幕截图中。
首先设置内存使用量达到峰值的检查范围。在图表中单击并拖动以设置检查范围。您会注意到检查范围之外的图形颜色变为灰色。此时,您需要关注内存使用高峰的位置。
要在代码中查找导致内存使用量增加的位置,请通过单击图表下方的跳转栏并选择调用树来切换到调用树视图。反转调用树和隐藏系统库可以更容易地在调用树中找到您的代码。单击窗口底部的调用树按钮可反转调用树并隐藏系统库。
如果您在调用树中找到分配大量内存的函数,您可以双击它以显示分配内存的代码行。
您可以用来分析内存增长的另一个工具是分配工具的世代。运行您的应用程序,暂停,然后单击“标记生成”按钮以创建生成。重复创建多代。从跳转栏中选择世代以查看一代又一代的内存增长量。
推荐阅读
- split - 如何限制从一个内部表传输到另一个内部表的条目数
- regex - 用VI编辑器中的特定匹配替换每一个匹配的正则表达式?
- javascript - 延迟加载模块时出现运行时错误
- docker - Docker 子镜像不继承安装在基础镜像中的包
- python - 使用python将行转换为列
- angular - 使用带有 Ionic / Angular 的非 npm 3rd 方库
- laravel - Laravel Eloquent 关系在哪里
- apache-spark - 使用 Pyspark 将数据从 .dat 转换为镶木地板
- xaml - 如何在 Xamarin.Forms 中使用 TableView?
- node.js - firebase deploy 未被识别为内部或外部命令,可运行程序