Ho provato la mia app sul mio dispositivo a scorrereXcode e strumenti per monitorare CPU e livelli di memoria. La mia app esegue animazioni su alcune viste e ho notato che anche dopo aver lasciato quella pagina i livelli di memoria rimanevano alti e si sarebbero sviluppati sopra. Ad un certo punto i livelli di memoria erano di circa 90 MB.
È normale?
Ho controllato che il conteggio del riferimento automatico è attivo. La memoria non dovrebbe cancellare se stessa?
Grazie.
Questa è una delle animazioni che contengono molta memoria.
-(IBAction)start:(id)sender
{
animation.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"1.png"],
[UIImage imageNamed:@"2.png"],
[UIImage imageNamed:@"3.png"],
[UIImage imageNamed:@"4.png"],
[UIImage imageNamed:@"5.png"], nil];
[animation setAnimationRepeatCount:0];
animation.animationDuration = 2.5;
[animation startAnimating];
}
Questo è il suo strumento di allocazioni e perdite. "# Living" è ciò di cui ho bisogno per essere preoccupato?
risposte:
2 per risposta № 1Hai bisogno di inserire il codice. Se la memoria non si cancella dopo aver lasciato una pagina significa che qualcosa lo trattiene: 90 MB potrebbero essere un po 'alti - stai animando una grande immagine caricata sul disco?
ARC non è una raccolta di rifiuti: devi ancora stare attento a ciò a cui tieni
1 per risposta № 2
A seconda di cosa fa l'applicazione, 90 MB possonoessere molto ARC non è magico e, sebbene sia di grande aiuto per la gestione della memoria, i cicli di conservazione possono far sì che la memoria si sviluppi e non venga rilasciata correttamente. È necessario utilizzare gli strumenti di allocazioni e perdite di memoria per vedere quali oggetti non vengono rilasciati correttamente.