【发布时间】:2012-11-30 13:30:33
【问题描述】:
我搜索如何找到我的问题。 在我的 iPad 应用程序中,当我处理数据时,我增加了内存并且从不释放该内存,我尝试仪器泄漏内存但没有发现内存泄漏(我尝试使用配置文件和分析)。
所以我的问题是他们有其他工具来查找内存泄漏或其他方法吗?
提前感谢您的考虑。
P.S:我没有发布代码,因为这涉及我的代码的很大一部分,但内存增加的部分是我从 FTP 下载一些 zip 文件的部分(基于 Apple Doc 中的 SimpleFTPSample)我解压缩这些文件(使用框架 minizip)这个 zip 文件包含一些图像和 XML 文件我解析了这个 XML 文件(大约 7200 个 XML 文件和 35 000 个图像文件保存)我在数据库中保存了一些信息(解析问题)和它。如果你需要我的部分代码来帮助我问我。
【问题讨论】:
-
就像您自己说的:没有泄漏。你需要停止在一个紧密的循环中分配东西。
-
您说您正在下载和解析 7,200 个 XML 文件。我假设你会使用循环。
-
当然我有一个循环,但是如何停止分配,我释放了我创建的所有对象,并且我将@autoreleasepool 用于其他对象,但这并没有释放所有使用的内存,所以我不明白为什么会这样当我用仪器检查内存时增加......
-
分块处理文件。当您处理完一组数据(可能是 50-100 个文件)后,自行清理、存储、释放一些内存,然后加载下一个块。
-
我也尝试过,但没用最后到 30MB 我有一个 150MB 的内存,只是没有改变,但仪器没有检测到内存泄漏,这很奇怪吗?
标签: iphone objective-c ios ipad memory-leaks