【发布时间】:2015-04-04 00:12:53
【问题描述】:
我正在尝试使用 AFNetworking 2.5 下载大量图像并将它们流式传输到磁盘。根据 Xcode 中的内存监视器,这会导致无限的内存增长(并最终导致内存警告和强制退出) - 但使用分配工具分析内存使用情况表明内存使用情况是稳定的。
我想 Xcode 在这里是错误的,但是为什么我的应用会被 iOS 杀死?
仪器显示了这一点 - 峰值是核心数据查询,然后是图像下载 - 峰值约为 9.5MB,其余约为 8.5MB
我也尝试过 Heapshot Analysis - 它显示了一点点增长,但远不及 Xcode 报告的数量
Xcode 的内存监视器显示了这一点 - 每次迭代都会增长数 MB。
有什么方法可以让 Instruments 向我展示 Xcode 看到的任何内容?或者有没有更好的工具可以用来找出所有这些内存的去向?
谢谢!
【问题讨论】:
-
当您通过分析器运行应用程序时,我相信它默认为发布版本。我想知道当你通过 Xcode 运行它时,你是否正在构建一个调试版本。检查您的方案并确保两者构建相同的版本。
-
“运行”和“配置文件”都设置为在方案编辑器中调试。除非有其他地方可以设置?
-
不,这正是我考虑的地方。看到配置文件的发布版本是很常见的(并因此看到与调试版本不同的行为)。而且,当然,我假设在 Instruments 中,在“记录选项”选项卡中分配工具的“记录类型”设置下,您正在记录所有类型?很好奇,很好奇。一只黑森虫。
-
最后一个想法:我遇到过 Instruments 莫名其妙地对旧版本的应用程序进行分析的令人烦恼的情况。我建议您实际上不仅要进行干净的构建,而且还要在重建之前从设备/模拟器中删除应用程序。
-
我尝试删除该应用程序,但没有成功。还尝试更改构建类型以在 AFNetworking 等的 Cocoapods 方案中进行调试并再次进行分析,仍然是相同的行为。奇怪!
标签: ios xcode afnetworking instruments