2012-10-16 50 views
0

內存警告我沒有在我的iOS應用程序接收這些警告什麼內存使用量閾值,當我收到的iOS

Received memory warning. Level=1 
Received memory warning. Level=2 

問題是,等級= 2的警告後,我的應用程序將被殺死...... 如何許多MB內存我的應用程序可以使用,直到我收到這樣的警告?在我的應用程序因二級內存警告而死亡之前,我在XCode樂器中獲得了30萬個「Live Bytes」。這是我的閱讀錯誤,還是我不認爲在我的應用程序中使用超過30Mb的內存?

我正在使用iPod Touch第4代和iPhone 4進行測試,並將這些設備作爲最低限度目標。

任何意見都表示讚賞,並提前致謝!

+0

Skyler Saleh爲iOS應用程序提供了「可接受」的RAM使用情況的可靠詳細信息: http://stackoverflow.com/questions/6044147/memory-limit-and-ios-memory-allocation-in-iphone-sdk – Zennichimaro

+1

TODO:嘗試不同的儀器,使用「Memory Allocation」儀器,但一位同事在其xcode儀器上運行正常,100+ Mb。我很確定我們的應用程序在運行 – Zennichimaro

回答

0

如果你想支持像iPhone 3GS這樣的舊設備,我建議不要超過12-15MB。

1

首先,我會問自己,你裝入內存需要佔用多少空間。其次,如果你以正確的方式釋放所有東西。 ARC簡化我們的生活,但不是垃圾收集器,可能會遺棄內存和其他問題,導致內存增長。在iphone 3gs中,內存的限制大約是25MB,當你到達它時,你會得到一個內存警告,如果你的應用程序無法刷新一些內存,它會關閉。

+0

時隨時都會使用超過30Mb的「首先,我會問自己什麼是加載到內存中,佔用這麼多空間。」 - 這確實是最好的建議,因爲你無法控制有多少內存可用(操作系統根據可用性來決定)。你所能做的就是a)儘可能少地使用存儲器,b)適當地迴應第一個存儲器警告。 – sosborn

+0

我只是加載渲染場景所需的所有紋理。一個未壓縮紋理已經使用了4Mb的RAM(1024x1024×32位)。它運行在3GS上,仍然運行在3GS上,所以我非常確定天花板不是30Mb。我稍後會嘗試重新進行配置。感謝您的輸入! – Zennichimaro

相關問題