ios – Xcode分配仪器代

ios – Xcode分配仪器代,第1张

概述我一直在ARC项目上使用Instruments(在设备上运行)以确保我清理任何废弃的内存.为此,我一直在使用分配生成工具并将我的堆的快照用于相同的 *** 作10-20次.令我困惑的是增长.有些时候增长是0,然后是另一个,一些字节数(从几个字节到几千字节之间从不一致)似乎正在积累.但通常至少有几次迭代增长为0. 我的问题是:如果我的成长有时为0,这是否意味着我的记忆管理是正确的?或者我仍然有需要发现的问题 我一直在ARC项目上使用Instruments(在设备上运行)以确保我清理任何废弃的内存.为此,我一直在使用分配生成工具并将我的堆的快照用于相同的 *** 作10-20次.令我困惑的是增长.有些时候增长是0,然后是另一个,一些字节数(从几个字节到几千字节之间从不一致)似乎正在积累.但通常至少有几次迭代增长为0.

我的问题是:如果我的成长有时为0,这是否意味着我的记忆管理是正确的?或者我仍然有需要发现的问题吗?我知道内存可能需要几个周期才能“消耗”,但是即使在> 10次迭代之后仍然分配并保留的内存呢?

这似乎是关于乐器解释的更普遍的问题,所以我遗漏了任何具体的代码.此外,我发现这种情况发生在各种堆快照场景中:拉动刷新,推送视图控制器等.

编辑:我已经包含了snapshot of my Instruments window.

解决方法 我会说,如果你的动作循环有几次迭代导致分配了0个字节并且仍然存在,那么你就很擅长内存管理并且没有泄漏.

您看到的增加(从几个字节到几千字节)最有可能来自 *** 作系统或后台Apple代码,以尝试管理您正在执行的任务.一个简单的例子是,如果你第一次拿起键盘Apple为它分配永不释放的内存,那么迭代就会看到你没有创建的“泄露”内存.你所做的一切都有Apple运行的背景代码,你无法定义它想要用内存做什么.它可以缓存经常完成的特定事情,以便下次运行得更快.整个Apple的理念是流畅运行的应用程序,因此用户体验是最好的. *** 作系统在后台执行的 *** 作可能是间歇性的,并且可能导致未释放的内存.

检查堆快照以查找已分配但未释放的对象.如果你可以跟踪代码中的那些对象然后修复它,如果你不能,那么它可能是一个可以或不可以避免的 *** 作系统分配.就像我刚才说的那样,如果你获得了大量的0增加,那么由于这些间歇性的OS增加,我不会担心它.

总结

以上是内存溢出为你收集整理的ios – Xcode分配仪器代全部内容,希望文章能够帮你解决ios – Xcode分配仪器代所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1041376.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存