【发布时间】:2011-11-18 17:00:34
【问题描述】:
当您进行释放时,您不会立即删除内存。我使用了this code,我可以看到使用释放前后的内存,它没有改变。好的,过段时间会放出来的。
但是,在启动一个会使用大量内存的库之前,我该怎么做才能释放所有内存?或者如何立即释放内存?
【问题讨论】:
-
我认为您误解了内存的工作原理。您的应用程序有一个为其保留的内存池,当您释放内存时,它会返回该池。如果您的程序需要释放的内存,它应该立即可用。
-
驻留大小可能仅准确到整个页面,因此不应作为绝对指导。无论如何,您能否展示您的代码不会立即释放内存?相关对象可能由于某种原因最终进入自动释放池,例如因为您在某个时候使用了 getter 来获取它,即使您随后解除了父对象的所有权。
-
一个很好的类比可能是,如果你正在使用一个工具,你完成设置它并宣布“我完成了这个”。下一个用户出现之前可能需要一两分钟,但这并不意味着它不可用。
标签: objective-c ios memory-management