你似乎有泄漏,但看起来很温和.您可以单击内存地址旁边的小箭头,它应该会显示一个屏幕,您可以在其中查看内存的分配位置,这是确定未分配内存的第一步.(我会启动非malloc对象,因为它们通常会更直接地映射到您的代码,并且更容易诊断).
但有时候你会看到像迈克罗宾逊所说的那样适度的泄密,误报.即使它不是误报,也可能来自操作系统本身,而不是代码.因此,我们有时会通过练习强调应用程序(例如,反复运行应用程序中似乎会产生泄漏的部分)来查看泄漏增长的速度(如果有的话).看起来您的泄漏可能会增加到不到1千字节左右,并且不会继续增长,您可能会选择不担心它.(或者至少一旦你对自己感到满意,你的代码中没有任何内容会导致它.)
但就个人而言,我不太关心这些适度的泄漏,而不是整体内存使用量的显着增长.它可能只是一个适当的图像缓存,或者它可能是一些废弃内存的标志(漏洞工具不会告诉你).我会尝试模拟内存警告,看看有多少内存被恢复.您还可以在时间轴上拖动并转到分配视图,您可以查看该内存消耗的帐户.您可能希望确保没有与"泄漏"工具报告的适度泄漏无关的更深层次的内存问题.并非所有内存问题都出现在"泄漏"中:"分配"增长也可能表明存在问题,而且我有点担心你没有看到你的内存使用量下降到一些稳态水平.
Apple分享了一个示例分配图,建议我们注意红色"浪费"的内存.预热部分不是那么关键,也不是中间级别(只要它不是太高),但稳态级别的增长表明存在更严重的内存问题:
在你的情况下,我没有看到应用程序恢复到稳定状态,这就是为什么我有点担心.但是我不确定你运用了多少应用程序,或者你是否给了它一个回归稳定状态的机会.
如果您观看(有些过时,但仍然相关)WWDC 2013 修复内存问题,它将为您提供诊断和解决内存问题的工具和技术.这是上面图表的来源,并对其进行了更详细的描述.请注意,PDF演示文稿很好,但视频要好得多,因为它包含一些使用乐器的实际演示.WWDC 2012 iOS应用程序性能:内存也很好.(看起来流媒体视频可能有问题,但看起来你仍然可以下载它.)
| 归档时间: |
|
| 查看次数: |
67 次 |
| 最近记录: |