ios - 为什么在ios中废弃的内存不被视为泄漏内存

标签 ios objective-c instruments

<分区>


想改进这个问题吗? 通过 editing this post 添加细节并澄清问题.

已关闭 9 年前

请告诉我为什么废弃的内存不被视为泄漏的内存?

为什么在调用主对象的dealloc后,对象引用仍然存在。 ?

根据仪器,

泄漏的内存是:已分配的内存无法再访问。

废弃的内存:可访问的分配的从未使用过的内存。(浪费或遗忘的内存)

Ex:在 popOverController 被关闭后,该 viewController 中的所有变量都被释放,根据 INSTRUMENTS 没有泄漏。

但是当检查 Mark Heap 时,它告诉我一些内存正在被浪费。

正在释放所有变量。 一旦 View dealloc被调用,它就会释放所有对应的对象,对吗? 如果它无法发布,那么它将被归为Leaks。

请帮帮我,如何捕获这个被遗弃的内存?这背后的主要原因是什么(开发中最常见的错误)?

谢谢

最佳答案

泄漏的内存非常具体 - 这是您在代码中不再引用的已分配内存。

应用程序可以使用“太多”内存(例如,它将收到内存警告并被操作系统关闭),而不会泄漏单个字节。例如,一个巨大的 UIImage 对象数组可能会很快占用内存,但不会泄漏任何内存。

废弃的内存就属于这一类 - 如果您用对象占用内存空间,但从未访问它们,那么这就是废弃的内存。 Instrument 对“从不”的定义当然是只要您运行该仪器即可 - 您需要访问应用程序功能的所有区域。

现在我们已经清除了被遗弃/大量的困惑,您希望能够找到其他文章和答案,例如评论中的文章和 this related, if not duplicate, question

关于ios - 为什么在ios中废弃的内存不被视为泄漏内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18372815/

上一篇:ios - iOS 报亭应用自动化入门

下一篇:iphone - 当两个文本字段都是一些文本时如何显示警报

相关文章:

ios - Cocoapods 导入外部框架

ios - 为测试飞行创建企业 .ipa 时使用什么 url?

objective-c - iOS 7.1 - 7.1.2 所有者无法打开我的游戏

objective-c - 单例被释放

ios - 将 cocoapods 添加到使用 cordova 6.5 创建的 iOS 工作区

iphone - 三角学 - 旋转物体以背离一条线

ios - 为什么我的 NSMutableArray 在某些索引上包含 nil?

ios - Xcode 中的 Instruments 中显示的 Malloc 内存泄漏是什么?如何修复它们?

iPhone:工具配置稳步增长

swift - 调用实例的描述方法时快速内存泄漏