Ich verwende das ObjectAlloc-Tool von Instument, um zu verstehen, was der Speicher meiner Anwendung (iPhone) tut und wann und wo sie es tut.
Ich hätte wirklich gerne eine grundlegende Erklärung dieser Statistiken:
- Live Bytes
- #Leben
- #Transitory
- Gesamtbytes
Wenn ich herausfinden möchte, wie viel Speicher meine Anwendung verwendet, muss ich dann Live-Bytes oder Gesamtbytes anzeigen? Umfasst dies einen Speicherverlust? Was sind vorübergehende Objekte?
Vielen Dank
Antworten:
ObjectAlloc
Verfolgt die gesamte Speicherzuweisung und Freigabe während der Ausführung Ihres Programms.Dies
Living bytes, or Net bytes
ist, wie viel Speicher Ihre Anwendung zum Zeitpunkt der Auswahl in der Zeitleiste verwendet. Dies schließt einen Speicherverlust ein, da ein Speicherverlust niemals freigegeben wird.#Living
gibt an, wie viele Zuordnungen einer bestimmten Größe / eines bestimmten Objekttyps stattgefunden haben (und noch zugewiesen sind). Dies ist sehr nützlich, wenn Sie nach Lecks suchen.Wenn Sie beispielsweise wiederholt eine Aktion ausführen (z. B. wenn Sie aus einem Controller mit modaler Ansicht herauskommen) und feststellen, dass die
#Living
eines Objekts jedes Mal um den gleichen Betrag wächst, verlieren Sie wahrscheinlich diese Objekte. Sie können dies dann bestätigen, indem Sie einen Drilldown durchführen und die genaue Codezeile anzeigen, in der die Objekte zugeordnet sind, und sogar den Zeitindex anzeigen, der jeweils erstellt wurde.Overall bytes
Enthält Speicher, der freigegeben wurde. Es ist nützlich, diese Zahl zu Zwecken der Leistungsoptimierung zu verfolgen, aber nicht, wenn Sie nur versuchen, Ihren aktuellen Speicherbedarf zu ermitteln oder nach Lecks zu suchen.quelle
Statistik Erklärung von Apple Docs. Link zum Dokument
quelle