ios – XCODE工具分配增长
我在ios应用程序上运行uiautomation脚本.经过大约40次迭代:
在登录 我到达这张图. 我的问题是关于分配图.它应该是这样的吗?我的脚本停止运行,我认为它是因为内存泄漏太多了?我知道泄漏的位置,并且它始终在同一个地方.但是随着时间的推移,分配图应该是这样的吗?我假设在理想的记忆意识应用中它基本上保持0斜率.但这对我来说意味着,随着时间的推移,还有很多分配? 问题:图表应该是这样的吗?如果正确释放内存(非弧),我正在做的步骤应该保持一个倾斜的分配图/随着时间的推移? 解决方法
不,图表不应该是这样的.分配通常应该降低(除了缓存,甚至那些在内存压力下清除时应该回落).
但是,在你修复泄漏之前,没有必要担心分配问题.那可能会这样做.修复泄漏并重复上述练习,看看分配是否持平.如果没有,那么您可能还有其他问题.但修复泄漏可能会完全弥补这种情况. 此外,如果您还没有,请通过静态分析器运行该工具(Xcode“Product”菜单上的“Analyze”或按下shift命令B).特别是在MRC代码中,这将识别许多例行的内存管理问题.这就像魔术一样.在继续之前,请确保在那里获得清洁的健康状况. 然后使用“泄漏”工具精确定位泄漏的位置.然后,您可以诊断特定对象泄漏的原因.在继续之前修复泄漏.请参阅“仪器用户指南”的Finding Leaks部分. 完成所有这些后,您可以重复原始问题的过程,并查看分配是否继续增长(例如,可能是由保留周期引起的).如果您在修复上述漏洞后仍然遇到问题,那么工具中的技术可以识别增量分配的类型,然后您可以使用这些技术来追踪任何进一步的问题(如果有的话). 例如: >运行分配工具,在分配工具中单击选项并拖动,然后您可以查看调用树,它将显示消耗内存的内容.有关示例,请参见this answer. 但是所有这一切都没有实际意义,直到你修复泄漏,泄漏工具将比其他任何东西更有效地指出泄漏的对象.首先修复,然后看看你的位置. 有关更多信息,您可能会发现WWDC 2012 iOS App Performance: Memory视频中的一些讨论很有用(特别是在演示部分). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |