我正在阅读用于 iPhone 开发的泄漏查找工具,并在进入更大、更难调试的项目之前有意在我的小程序中插入和查找内存泄漏。
识别内存泄漏是没有问题的,例如,发生在定期调用的方法(例如响应触摸事件)中的内存泄漏。泄漏工具最终将识别无人认领的虚拟内存。
我更担心退出整个系统的代码泄漏。一旦我完全退出我的应用程序,是否会担心某些内容没有被释放,或者 iPhone 操作系统是否会在此时自动回收所有用户内存?
在阅读了大量文档后,我不清楚这个问题,并且在不了解其他任何内容的情况下,我认为它在这方面必须像其他操作系统一样工作,并且只是收回所有用户空间。如果是这样,我是否可以很好地清理定期泄漏,以便我的应用程序可以在有限的内存下运行任意时间,然后不用太担心所有内容在退出时都会被释放?
此外,如果在退出之前释放所有内容至关重要,因为它不会被操作系统回收,那么有没有一种好方法可以在退出检查后使我的应用程序在仪器中保持事件状态?当我按下模拟器或设备上的主页按钮时,我不是已经失去了检测退出时间泄漏的机会吗?
最佳答案
是的,结束程序将释放它所占用的所有内存。否则就是操作系统错误,您不太可能发现这种情况发生。
编辑:我打赌你问这个是因为文档说“iPhone不支持垃圾收集”。但是,该语句不适用于程序结束时释放内存。它只是讨论在程序运行时如何释放自己的内存。
关于iphone - iPhone OS 退出时会回收用户空间内存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1038986/