iOS-Speicherverwaltung
Einführung
Die Grundidee der Speicherverwaltung in iOS ist die Referenzzählung, die den Lebenszyklus von Speicherobjekten über die Referenzanzahl des Objekts steuert. In der Programmierpraxis gibt es hauptsächlich zwei Ansätze:
1: MRR (Manual Retain-Release), manuelle Referenzzählung. Die Erstellung, Zerstörung und Änderungen an der Referenzanzahl von Objekten werden alle vom Entwickler verwaltet.
2: ARC (Automatic Reference Counting), automatische Referenzzählung. Es übernimmt nur die Erstellung von Objekten; Entwickler müssen sich keine Gedanken mehr über die Zerstörung in anderen Prozessen machen. Es funktioniert ähnlich wie Garbage Collection, aber im Kern ist es immer noch Referenzzählung.
Aufgetretene Probleme
Laut der Dokumentation von Apple sind die beiden Hauptprobleme, mit denen man konfrontiert wird:
Das Freigeben oder Überschreiben von Daten, die noch verwendet werden. Dies verursacht Speicherbeschädigung, was normalerweise zu Abstürzen der Anwendung führt oder, schlimmer noch, Benutzerdaten beschädigt.
Werden Daten, die nicht mehr verwendet werden, nicht freigegeben, führt dies zu Speicherlecks. Zugewiesener Speicher, der durch ein Leck verloren geht, wird nicht freigegeben, selbst wenn er nie wieder verwendet wird. Lecks führen dazu, dass die Speichernutzung der Anwendung mit der Zeit zunimmt, was wiederum zu schlechter Systemleistung oder Abstürzen führen kann.
Regeln für die Speicherverwaltung
Wir erstellen unsere eigenen Objekte und geben sie frei, wenn sie nicht mehr benötigt werden.
Behalten Sie Objekte, die verwendet werden müssen. Geben Sie diese Objekte frei, wenn sie nicht mehr notwendig sind.
Geben Sie keine Objekte frei, die wir nicht besitzen.
Verwenden von Speicherverwaltungswerkzeugen
Die Speichernutzung kann mit Hilfe des Instruments-Tools von Xcode analysiert werden. Es enthält Tools wie Activity Monitor, Allocations, Leaks, Zombies usw.
Schritte zur Analyse der Speicherzuweisung
1. Öffnen Sie eine bestehende Anwendung.
2. Wählen Sie Produkt und dann Profil aus, wie unten gezeigt.

3. Wählen Sie Allocations und Profile in der folgenden Oberfläche aus.

4. Wir können die Speichernutzung verschiedener Objekte sehen.
5. Sie können zwischen View Controllern wechseln, um zu sehen, ob Speicher freigegeben wurde.

6. Ähnlich können wir den Activity Monitor verwenden, um die Speicherzuweisung in der Anwendung anzuzeigen.

7. Diese Tools können uns helfen, die Speichernutzung zu verstehen und wo Lecks auftreten können.
Andere Erweiterungen