在iPhone和模拟器上显示扩展内存使用量的泄漏

时间:2009-11-06 16:15:27

标签: iphone memory-management

当我使用Leaks仪器在模拟器中运行我的应用程序时,它使用大约2.5mb的内存。当我在iPhone上运行它时,它需要永远启动,慢慢爬到~34mb的内存然后崩溃。但是,当我在没有泄漏的iPhone上运行它时,它会快速启动并运行正常。这是为什么?

2 个答案:

答案 0 :(得分:1)

您是否启用了僵尸检测?

僵尸检测将导致分配的每个对象永远不会被释放(该对象在解除分配时被标记为僵尸)。这将导致内存增长,如您所述。一个常见的错误是在使用Instruments时通过环境变量或通过Object Alloc仪器中的复选框启用僵尸检测。


如果它不是僵尸或泄漏,那么 - 就像其他人所说的那样 - 记忆被分配并坚持下去。使用Object Alloc工具跟踪应用程序中分配的对象,并确保其中的每一个都存在。您可以启用“仅跟踪实时分配”以过滤掉已经解除分配的所有对象。

答案 1 :(得分:0)

崩溃可能是由于您的应用程序内存泄漏以及设备内存不足造成的。没有看到任何代码,就无法分辨。 Here是关于如何使用乐器的教程

“永远需要启动”并且运行缓慢是由于泄漏监控系统每隔10秒轮询一次设备以获取信息

编辑:这可能是由于在给定时间内在内存中保留了太多对象。检查仪器和对象分配。仅仅因为你没有泄漏并不意味着你不能耗尽内存