2010-08-24 29 views
0

我有一個正在開發的應用程序,它爲圖像和OpenGL紋理使用了大量內存。SpringBoard內存分配(iPhone/iPad)

我注意到,偶爾,在一些設備上,經常在某些設備上使用SpringBoard,管理iPhone和iPad主屏幕的應用程序會佔用過多的內存,有時甚至是正常情況的兩倍。

發生這種情況時,它會將我的應用程序發送到內存警告甚至崩潰。我的圖像儘快發佈,但我相信,由於純粹的音量,它只是不夠好,仍然導致崩潰...

我無法在Apple文檔中找到太多內容SpringBoard,但它讓我感到厭煩。

想知道是什麼原因導致SpringBoard如此激進的任何想法或指針?

回答

0

答案是,儘管是自動發佈的,但MKAnnotationViews正在SpringBoard的內存佔用中,而不是我自己的應用程序中,並沒有在樂器中表現得很清楚。

對蘋果來說,這是一個相當具有欺騙性的事情,尤其是它們允許你自動釋放並且從不使用對象,但它永遠不會被釋放......因此它在技術上並不是泄漏和靜態分析,但仍然可以很容易地導致與內存相關的崩潰。

1

在這些情況下,您的應用程序不應該崩潰 - 當操作系統告訴它退出時,它應該優雅地關閉。 Apple不會很多地記錄Springboard,因爲沒有太多可以告訴你的信息,它會影響你作爲一名程序員所做的工作,這可以歸結爲「儘量少用內存;不要泄漏內存;儘快退出可能當被告知退出「。

簡而言之,如果您再花時間擔心Springboard的行爲,而不是在應用程序中修復崩潰問題,那麼您並沒有明智地利用您的時間。

+0

我不是在爭辯,但我想知道的是,如果我的應用程序可以採取任何行動,這將導致SpringBoard分配額外的內存。我可以在儀器上運行顯示器,並在運行應用程序時觀看SpringBoard分配高達10MB的內存。 – 2010-08-24 17:47:21

+1

我不確定,除蘋果之外,任何人也沒有;即使我們確實知道現在爲什麼會發生這種情況,那麼發佈之間可能會發生變化。所以,再次,你在這裏咆哮錯誤的樹。如果你花太多時間擔心Springboard(這是你無法控制的)之類的東西,那麼你就沒有時間花時間去控制可以控制的事情(例如,解決設備進入低功耗狀態時應用程序崩潰的原因,記憶狀況)。 – 2010-08-24 17:51:38

+0

花了最後3個小時儀表。如果你不重用它們,MKAnnotationView會泄漏到SpringBoard中。可怕的是蘋果的一部分。它們不是自動釋放的,只是在SpringBoard的內存佔用中彙集起來。 – 2010-08-24 19:09:32