Der Inhalt dieses Artikels befasst sich mit dem js-Garbage-Collection-Mechanismus. Ich hoffe, dass er eine Einführung in den js-Garbage-Collection-Mechanismus bietet.
JS verfügt über einen automatischen Garbage-Collection-Mechanismus. Der Garbage Collector wird periodisch in festen Abständen ausgeführt.
Gängige Garbage-Collection-Methoden in JS: Markierungslöschung und Referenzzählung.
1. Markierungslöschmethode:
Funktionsprinzip: Wenn eine Variable in die Umgebung eintritt, markieren Sie die Variable als „in die Umgebung eintreten“. Wenn eine Variable die Umgebung verlässt, wird sie als „die Umgebung verlassen“ markiert. Der mit „Verlassen der Umwelt“ gekennzeichnete Speicher wird recycelt.
Workflow:
-
Der Garbage Collector markiert alle im Speicher gespeicherten Variablen
-
entfernt die Tags von Variablen in der Umgebung und Variablen, auf die von Variablen in der Umgebung verwiesen wird;
-
wird als zum Löschen bereite Variablen betrachtet;
- Der Garbage Collector schließt die Speicherbereinigung ab, zerstört die markierten Werte und gewinnt den von ihnen belegten Speicherplatz zurück.
2. Referenzzählmethode:
Arbeitsprinzip: Verfolgen und protokollieren Sie, wie oft jeder Wert referenziert wird.
Workflow:
- deklariert eine Variable und weist der Variablen einen Referenztypwert zu. Die Anzahl der Referenzen dieses Referenztypwerts beträgt 1; >
Derselbe Wert wird einer anderen Variablen zugewiesen und die Referenznummer dieses Referenztypwerts wird um 1 erhöht
-
Wenn der Variablen, die diesen Referenztypwert enthält, ein anderer Wert zugewiesen wird, wird die Anzahl der Referenzen auf diesen Referenztypwert um 1 reduziert
-
Wenn die Anzahl der Referenzen 0 wird, bedeutet dies, dass es keine Möglichkeit gibt, auf diesen Wert zuzugreifen.
-
Wenn der Garbage Collector das nächste Mal ausgeführt wird, gibt er den Speicher frei, der durch den Wert mit einem Referenzzähler von 0 belegt ist.
-
Wenn jedoch ein Zirkelverweis vorliegt, kann der Speicher nicht freigegeben werden, was zu einem Speicherverlust führt.
Da die Implementierung von BOM und DOM im IE COM und COM verwendet Objekte Der verwendete Garbage-Collection-Mechanismus ist die Referenztechnologiestrategie. Es wird also ein Zirkelverweisproblem geben.
Lösung: Trennen Sie manuell die Verbindung zwischen dem JS-Objekt und dem DOM und weisen Sie den Wert null zu. IE9 konvertiert DOM und BOM in echte JS-Objekte, sodass dieses Problem vermieden wird.
Verwandte Empfehlungen:
PHPs Garbage Collection-Mechanismus Was ist der recycelbare Müll? Garbage Collection Nicht recycelbarer Müll
Über PHP5 .3 Garbage-Collection-Mechanismus
Das obige ist der detaillierte Inhalt vonWas ist der js-Garbage-Collection-Mechanismus? Einführung in den js-Garbage-Collection-Mechanismus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!