2012-06-06 62 views
0

我正在研究iPad上的邮件客户端(类似于默认应用程序客户端),并使用核心数据框架作为缓存来提高性能。我的应用程序使用大约4.5 - 5 MB的堆内存,然后由于内存溢出而崩溃(使用分配工具检测到此情况)。如果我尝试减少内存,我的性能变得非常缓慢,因为我无法缓存我的视图,数据结构(存储文件夹和所有邮件)和表视图。为我的iPad应用程序需要更多内存

我检查了我的crashLogs,我看到抛弃在我的应用程序前面写的确认操作系统已强制关闭我的应用程序!

我已经使用仪器来检测这些限制。 Please find the attached image here 这是在应用程序崩溃之前我录制的快照。

我已经在模拟器上测试过我的应用程序,它稳定在6-7 MB的堆内存。 有没有什么办法让我可以要求操作系统获得更多的内存,或者避免在代码中重新设计一些内容。

任何建议或帮助将不胜感激。

+1

我认为你应该重用视图,而不是有多个视图来缓存数据。缓存内存中的数据是可以的,但如果太多,则必须缓存到磁盘。 – nhahtdh

+3

内存溢出意味着你已经触及未分配的内存(也许你已经写入超出了分配的块的末尾,或者你有一个损坏的指针)。我不认为这是一个堆大小问题。 – wrock

+0

是的,我正在使用核心数据缓存到磁盘。我没有重复使用视图。但我确定我释放它们。 –

回答

1

6-8MB的内存不应该是一个问题。很可能你要么摧毁内存,要么你正在运行一个调试版本并且开启僵尸,默认情况是永远不会删除僵尸。 NSZombiesEnabled = YES和NSDeallocateZombies = NO将会泄漏内存,因为没有任何东西被删除。

+0

我的应用程序像魅力一样! –

相关问题