内存问题iPad 4.2崩溃

时间:2010-12-29 13:28:18

标签: ipad memory-management device

我正在开发一个从服务器接收600-700 KB XML数据的应用程序。我必须对该数据进行一些操作,因此一旦接收到数据,存储器就会增加到600 KB到2 M.B.已经在应用程序中查看占用了4 M.B的内存。 因此,在处理XML数据时,我正在进行一些操作(预解析),并且内存增加到600 K.B到2 M.B并最终降低到600 K.B.由于内存增加,应用程序会给出内存警告。获取内存警告我释放导航控制器中的所有视图但它只释放1 M.B内存。即使我发布了应用程序崩溃的所有视图。 请帮我解决这个问题。它发生在iPad 4.2中。

提前致谢

2 个答案:

答案 0 :(得分:1)

这里没有神奇的答案。你使用太多内存,你需要弄清楚如何使用更少。在不了解您的应用程序的情况下,很难具体说明,尽管明显加载近1Mb的数据并且使用它并没有帮助。

也许您可以流式传输数据而不是将其全部加载到内存中?有一个开源库可以帮助:StreamingXMLParser

此外,您的视图听起来很大(超过一兆字节!)。我确信可以在那里进行一些优化。使用Instruments查看您的内存使用位置。

答案 1 :(得分:0)

由于参数值可以更改,或者您可能需要在开发会话期间手动启动垃圾收集操作(如果与使用的语言相关),可能只释放1MB。如果可能的话,您可以将xml输入分段,或者如果您可以以允许的方式访问脚本或代码,则可以在存储时调用[您自己的]压缩或压缩xml。