在登录
一遍又一遍地敲几个按钮
然后退出
我到达这张图.
我的问题是关于分配图.它应该是这样的吗?我的脚本停止运行,我认为它是因为内存泄漏太多了?我知道泄漏的位置,并且它始终在同一个地方.但是随着时间的推移,分配图应该是这样的吗?我假设在理想的记忆意识应用中它基本上保持0斜率.但这对我来说意味着,随着时间的推移,还有很多分配?
问题:图表应该是这样的吗?如果正确释放内存(非弧),我正在做的步骤应该保持一个倾斜的分配图/随着时间的推移?
解决方法 不,图表不应该是这样的.分配通常应该降低(除了缓存,甚至那些在内存压力下清除时应该回落).但是,在你修复泄漏之前,没有必要担心分配问题.那可能会这样做.修复泄漏并重复上述练习,看看分配是否持平.如果没有,那么您可能还有其他问题.但修复泄漏可能会完全弥补这种情况.
此外,如果您还没有,请通过静态分析器运行该工具(Xcode“Product”菜单上的“Analyze”或按下shift命令B).特别是在MRC代码中,这将识别许多例行的内存管理问题.这就像魔术一样.在继续之前,请确保在那里获得清洁的健康状况.
然后使用“泄漏”工具精确定位泄漏的位置.然后,您可以诊断特定对象泄漏的原因.在继续之前修复泄漏.请参阅“仪器用户指南”的Finding Leaks部分.
完成所有这些后,您可以重复原始问题的过程,并查看分配是否继续增长(例如,可能是由保留周期引起的).如果您在修复上述漏洞后仍然遇到问题,那么工具中的技术可以识别增量分配的类型,然后您可以使用这些技术来追踪任何进一步的问题(如果有的话).
例如:
>运行分配工具,在分配工具中单击选项并拖动,然后您可以查看调用树,它将显示消耗内存的内容.有关示例,请参见this answer.
>运行分配工具.让应用程序安定下来到一个静止点.单击“标记堆”按钮.做一堆东西.回到你认为应该释放东西的地步.再次按“标记堆”.现在查看该堆快照并查看已分配但未在两个快照之间发布的对象,并且您应该能够诊断正在发生的事情.
但是所有这一切都没有实际意义,直到你修复泄漏,泄漏工具将比其他任何东西更有效地指出泄漏的对象.首先修复,然后看看你的位置.
有关更多信息,您可能会发现WWDC 2012 iOS App Performance: Memory视频中的一些讨论很有用(特别是在演示部分).
总结以上是内存溢出为你收集整理的ios – XCODE工具分配增长全部内容,希望文章能够帮你解决ios – XCODE工具分配增长所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)