2012-01-28 6 views
12

Sto sviluppando per iOS e controllo la mia app con IPhone e IPad.iOS - ricevo avvisi sulla memoria ma non ho idea del motivo

Ricevo molti avvisi di memoria (è stato chiamatoReceiveMemoryWarning) ma non ho idea del perché. La mia app utilizza ~ 35 MB nei punti di picco e 4-5 MB quando è il punto più basso.

Ho cercato di trovare le perdite utilizzando "strumenti" ma non ho trovato alcun problema critico.

C'è un buon modo per scoprire perché il sistema invia avvisi di memoria?

+0

Lo strumento Leaks è il miglior strumento disponibile. Hai eseguito delle perdite sia sul simulatore che sul dispositivo? – smparkes

risposta

24

Avviso di memoria previsto in un'app per iOS. Non deve essere a causa della tua app. Altre app sono ancora in memoria anche se le app sono sospese. Il sistema operativo eseguirà la gestione della memoria inviando avvertimenti sulla memoria e uccidendo le app quando necessario. Finché utilizzi una quantità ragionevole di memoria (con perdite di memoria minime o inesistenti) e gestisci correttamente RececeMemoryWarning, starai bene.

Inoltre, quando la tua app è in modalità sospesa, se la tua app utilizza poca memoria, la tua app avrà più probabilità di sopravvivere al processo di omicidio. Poiché l'app con un ingombro di memoria maggiore verrà terminata per prima.

+0

Ho ricevuto "Avviso memoria ricevuta" durante il debug della mia app su un iPhone 5 con decine di altre app attive. Dopo che li ho fermati uno per uno e ho provato di nuovo, quel messaggio di avviso era sparito. – Donald

10

Ho anche scoperto che "Prodotto -> Analizza" (Maiusc + Comando + B) può aiutarti a risolvere alcuni problemi di codice prima di iniziare a utilizzare Leaks. Con l'introduzione di ARC questo è diventato meno utile però.

Problemi correlati