内存问题iPad4.2崩溃

内存问题iPad4.2崩溃,ipad,memory-management,device,Ipad,Memory Management,Device,我正在开发一个从服务器接收600-700KB XML数据的应用程序。我必须对数据进行一些操作,因此一旦收到数据,内存将增加到600 KB至2 MB。应用程序中已占用4 MB内存。 因此,在处理XML数据时,我正在进行一些操作(预解析),内存增加到600K.B到2M.B,最后由于内存的增加而减少到600K.B。应用程序会发出内存警告。在得到内存警告时,我释放了导航控制器中的所有视图,但它只释放了1MB内存。即使我发布了所有视图,应用程序也会崩溃。 请帮我解决这个问题。这发生在iPad4.2上 提前

我正在开发一个从服务器接收600-700KB XML数据的应用程序。我必须对数据进行一些操作,因此一旦收到数据,内存将增加到600 KB至2 MB。应用程序中已占用4 MB内存。 因此,在处理XML数据时,我正在进行一些操作(预解析),内存增加到600K.B到2M.B,最后由于内存的增加而减少到600K.B。应用程序会发出内存警告。在得到内存警告时,我释放了导航控制器中的所有视图,但它只释放了1MB内存。即使我发布了所有视图,应用程序也会崩溃。 请帮我解决这个问题。这发生在iPad4.2上


提前谢谢

这里没有神奇的答案。你使用了太多的内存,你需要找出如何使用更少的内存。如果不了解更多有关应用程序的信息,就很难做到具体,尽管显然加载近1Mb的数据并处理这些数据是没有帮助的

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


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

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

使用6-7 MB的内存听起来不足以使您的应用程序崩溃。你是否确认你的应用程序内存不足是导致崩溃的真正原因(查看崩溃日志)?是的,我已经检查过了。这种情况只发生在具有多任务功能的iPad4.2上。如果我减少在后台运行的应用程序的数量。我的应用程序运行良好。实际上我正在第五视图控制器中加载数据。我正在使用导航控制器加载视图控制器。我无法通过流解析数据,因为我必须替换接收数据中的许多特殊字符。我的问题是其他应用程序如何完美地工作。它们不会占用那么多内存来运行应用程序?我们无法根据您告诉我们的内容来判断。如果你的应用程序因为占用太多内存而被弹出,你必须找到一种使用更少内存的方法;其他应用程序正在做什么与此无关。你需要测量(配置)你的应用程序,以找到内存的使用位置,确保内存在你认为合适的时候被释放,并优化你大量使用的位置。