我有一个在模拟器中运行良好的 iPhone 应用程序。它通过摆脱并非绝对必要的所有内容来很好地响应内存警告。当我在设备上运行它时,它运行良好。但是经过一定量的使用后,它会因错误代码 101 而崩溃——据我所知,这是操作系统因内存使用而杀死它。我可以看到内存警告(我正在记录它),我的应用程序对其做出响应,但此后不久就死了。
如果我查看 Instruments 中的应用程序(在设备上或在 sim 中),它没有发现任何泄漏。此外,净内存使用量在 600-700k 字节范围内。从我的应用程序的不同视图转换会增加内存使用量(如预期的那样),但是当视图和控制器被释放并解除分配时,内存使用量永远不会像以前那么低。但是,加法通常只是 1000-2000 字节范围内的内容。因此,虽然 Leaks 显示没有泄漏,但我怀疑某处存在问题。我还查看了我正在分配的所有对象,所有这些对象似乎都按预期被回收了。我看到的唯一不断增加的对象是 GeneralBlock-N(其中 N 是某个数字)
我应该不关注仪器净使用量吗?尝试诊断问题的下一步是什么?
补充:我没有对 malloc() 或任何会返回我负责的缓冲区的 CoreFoundation 库进行任何调用。我正在进行的唯一非 Obj-C 调用是将语句记录到 NSLog。