内存增加,没有释放内存

时间:2012-11-30 13:30:33

标签: iphone objective-c ios ipad memory-leaks

我搜索如何找到我的问题。 在我的iPad应用程序中,当我处理数据时,我有增加内存而从不释放内存,我尝试仪器泄漏内存,但没有发现内存泄漏(我尝试使用配置文件和分析)。

所以我的问题是他们还有另一种用于查找内存泄漏或其他方法的工具吗?

提前感谢您的考虑。

PS:我不发布代码因为我的代码很大一部分,但内存增加的部分是我从FTP下载一些zip文件(基于Apple Doc的SimpleFTPSample)的一部分我解压缩这个文件(使用框架minizip)这个zip文件包含一些图像和XML文件,我解析这个XML文件(大约7200个XML文件和35000个图像文件保存)我在数据库中保存了一些信息(解析问题)。如果您需要我的部分代码来帮助我,请问我。

2 个答案:

答案 0 :(得分:1)

确保您在Scheme:Diagnostics中关闭了Zombies。随着僵尸没有记忆被删除。应该始终关闭Zombies来测试内存泄漏。

答案 1 :(得分:0)

当您将对象保留在数据结构(NSDictionary,NSArray,例如)中时,即使您不再需要它们,也会发生这种情况。使用仪器的分配检查哪些对象是累积的,并检查代码中保存这些对象的实例。

另一个原因可能是长时间运行的线程。 如果你提到的加载和解析是在一个需要很长时间的线程中完成的,那么你可能需要在某个循环中执行@autoreleasepool以强制定期清理临时对象。

这可能也没问题。你说你加载了很多图像。默认情况下,图像由iOS缓存,仅在需要清除内存时才会释放。如果仪器“跟踪突出显示”显示大量内存使用,但“分配”没有,那么这可能是原因。