SpringBoard内存分配(iPhone / iPad)

时间:2010-08-24 16:57:33

标签: iphone memory ipad

我正在开发一个使用大量内存用于图像和OpenGL纹理的应用程序。

我注意到,偶尔,实际上在某些设备上经常使用SpringBoard,管理iPhone和iPad主屏幕的应用程序会占用过多的内存,有时是正常情况的两倍。

当发生这种情况时,它会将我的应用程序发送到内存警告甚至崩溃。我的图像确实会尽快发布,但我相信由于数量庞大,它只是不够好而且还会导致崩溃......

我在关于SpringBoard的Apple文档中找不到多少内容,但它让我感到沮丧。

有关找出导致SpringBoard如此激进的原因的任何想法或指示?

2 个答案:

答案 0 :(得分:1)

在这些情况下,您的应用程序不应该崩溃 - 当操作系统要求它退出时,它应该优雅地自行关闭。 Apple不会非常记录Springboard,因为他们没有太多可以告诉你它会影响你作为程序员所做的事情,这可以归结为“尽可能少地使用内存;不要泄漏内存;尽快退出被告知退出时可能“。

简而言之,如果你花费更多的时间来担心Springboard的行为,而不是修复你的应用程序中的崩溃,你就不会明智地利用你的时间。

答案 1 :(得分:0)

答案是MKAnnotationViews尽管是自动释放的,但却汇集在SpringBoard的内存占用空间中,而不是我自己的应用程序,并且在仪器中没有表现得非常清楚。

这对Apple来说是一个相当具有欺骗性的事情,特别是因为它们允许你自动释放并且永远不会使用某个对象,但它实际上永远不会被释放...因此它在技术上并不是仪器和静态分析,但仍然可以轻易导致与内存相关的崩溃。