嘿,我有一个问题,我想要一些建议。在手机上泄漏,但不在仿真器上?
我工作的多数民众赞成由以下几个主要部分的文档查看器:
- 拉链库,解包文件容器(minizip)
- XML库,解析文档(libxml2的)
- 在屏幕上呈现文档的UI代码
没有太复杂或花哨的东西。
在模拟器上,一切都很精美;观众按预期执行。我已经通过仪器运行,没有泄漏。 ObjectAlloc报告在查看器的整个生命周期内分配了大约5.5兆字节(这反复打开我的测试文档)。
不幸的是在设备上(iPhone 3G,iOS 3.1.2)的事情并不那么清楚。相当频繁地,重复打开测试文件会导致内存不足错误,并且文件将无法打开。初始文件打开始终有效。尽管模拟器测试突出显示没有泄漏,整体内存占用也不大,但我不得不断言iPhone上确实存在泄漏(因为为什么重复打开会导致内存不足错误)。
我试图在设备上运行仪器,但应用程序在运行中途停下来(?!),所以我实际上没有成功运行泄漏。
我相信有一个重要的泄漏只会出现在设备上。所以,我剩下两个选项(没有特定顺序):
- 重构我的代码,避免使用zip库。这将消除潜在的泄漏源。耗时且不确定。
- 重新格式化并重新安装我的手机上的所有东西(也许有什么会导致问题)。非常像上面那样,耗费时间,并且会丢失我的手机数据。也许它会让我跑漏。
正如你所看到的,我到达这里。有什么明显的我失踪了?
在此先感谢你们。
你的意思是“ObjectAlloc”?你是什么意思通过手动搜索它们?感谢您的建议! – EightyEight 2010-08-13 04:28:00
嗯,我想是的。但是在我的乐器(在乐器选择菜单中)和我的XCode(主菜单:运行 - >与演奏工具一起运行)中,它被称为“分配”。 而关于手动搜索 - 请参阅我的答案(我编辑它以添加详细信息)。 – kpower 2010-09-01 07:02:15