Ich versuche, eine große Anzahl von Bildern mit AFNetworking 2.5 herunterzuladen und sie auf die Festplatte zu streamen. Entsprechend dem Speichermonitor in Xcode führt dies zu unbegrenztem Speicherwachstum (und schließlich zu Speicherwarnungen und Force-Quits) - aber das Profiling der Speicherbelegung mit dem Zuordnungsinstrument zeigt, dass die Speicherauslastung stabil ist.
Ich würde gerne denken, dass Xcode hier falsch ist, aber warum würde dann meine App von iOS getötet werden?
Instrumente zeigen dies - die Spitzen sind Kerndatenabfragen, dann der Rest ist das Herunterladen der Bilder - Spitzen bei ungefähr 9.5MB, der Rest sitzt bei ungefähr 8.5MB
Ich habe auch die Heapshot-Analyse versucht - die ein winziges Wachstum zeigt, aber nicht annähernd die von Xcode gemeldete Menge.
Der Speichermonitor von Xcode zeigt dies - er wächst um mehrere MB pro Iteration.
Gibt es eine Möglichkeit, Instrumente dazu zu bringen, mir zu zeigen, was Xcode gerade sieht? Oder gibt es ein besseres Instrument, um herauszufinden, wohin all diese Speicher gehen?
Danke!
Je nach Speichermonitor in Xcode führt dies zu unbegrenztem Speicherwachstum (und schließlich zu Speicherwarnungen und Force-Quittierung) - aber das Profiling der Speicherbelegung mit dem Zuweisungsinstrument zeigt, dass die Speicherauslastung stabil ist.
Believe Instruments and the Allocations Informationen - nicht der Speichermonitor in Xcode. Das Speichermonitordiagramm ist völlig irrelevant. Ignoriere es.
Dies liegt nicht daran, dass der Speichermonitor in Xcode nutzlos oder falsch ist. Dies liegt daran, dass Speicherverwaltung für einen Debug-Build völlig anders ist als für einen Release-Build (Instruments verwendet einen Release-Build). Dies gilt insbesondere für Swift (Sie sagen nicht, ob Sie Swift verwenden).
Beachten Sie die Speicherbelegung only auf dem Gerät und only in einem Release-Build. Andernfalls werden Sie völlig in die Irre geführt.
Tags und Links ios xcode instruments afnetworking