【发布时间】:2011-03-29 06:10:18
【问题描述】:
大家好,我有一个问题,我想要一些建议。
我正在开发一个由以下主要部分组成的文档查看器:
- 解压文档容器的zip库(minizip)
- 解析文档的xml库(libxml2)
- 在屏幕上呈现文档的 UI 代码
没有太复杂或花哨的东西。
在模拟器上,一切正常;查看器按预期执行。我已经通过仪器运行它并且没有泄漏。 ObjectAlloc 报告在查看器的整个生命周期内分配了大约 5.5 megs(这就是一遍又一遍地打开我的测试文档)。
不幸的是,在设备(iphone 3G、iOS 3.1.2)上,事情并不那么清楚。相当频繁地,重复打开测试文件会导致内存不足错误,并且文件将无法打开。初始文件打开始终有效。尽管模拟器测试强调没有泄漏并且整体内存占用量不大,但我不得不得出结论,iphone 确实存在泄漏(因为为什么重复打开会导致内存不足错误)。
我尝试在设备上运行仪器,但应用程序在运行中途停止(?!),所以我实际上没有成功运行 Leaks。
我认为某处存在重大泄漏,仅显示在设备上。所以,我有两个选择(不分先后):
- 重构我的代码以避免使用 zip 库。这将消除潜在的泄漏源。耗时且不确定。
- 重新格式化并重新安装我手机上的所有内容(也许那里有什么问题)。和上面差不多,很费时间,而且很糟糕,丢失了我的手机数据。也许它会让我运行 Leaks。
如您所见,我到达了这里。我有什么明显的遗漏吗?
提前谢谢各位。
【问题讨论】:
标签: iphone memory-management memory-leaks debugging instruments