Heim > Web-Frontend > js-Tutorial > Hauptteil

Verstehen Sie schnell die JavaScript-Garbage Collection

Guanhui
Freigeben: 2020-05-25 09:38:00
nach vorne
2085 Leute haben es durchsucht

Verstehen Sie schnell die JavaScript-Garbage Collection

Vorwort

JS verfügt über einen automatischen Garbage-Collection-Mechanismus Mit anderen Worten: Die Ausführungsumgebung verwaltet den während der Codeausführung verwendeten Speicher.

Das Prinzip der JS-Garbage Collection

Die Ausführungsumgebung findet die Variablen, die nicht mehr verwendet werden, und gibt dann den von ihnen belegten Speicher frei .

JS-Garbage-Collection-Strategie

Markierungslöschung

Wenn eine Variable in die Umgebung eintritt, wird sie gelöscht Markieren Sie diese Variable als „betritt die Umgebung“ und wenn die Variable die Umgebung verlässt, markieren Sie sie als „verlässt die Umgebung“.

Die Art und Weise, Variablen zu markieren, hängt von der jeweiligen Implementierung ab. Sie können beispielsweise eine Variablenliste für „Betreten der Umgebung“ und eine Variablenliste für „Verlassen der Umgebung“ verwenden, um zu verfolgen, welche Variablen sich geändert haben.

Zu den Browsern, die die Tag-Entfernung genutzt haben, gehören IE, Firefox und Chrome.

Referenzzählung

Dies ist eine weniger verbreitete Garbage-Collection-Strategie, die die Anzahl der Referenzen auf jeden Wert verfolgt.

Wenn eine Variable a deklariert und der Variablen ein Referenztypwert ({name:'cc'}) zugewiesen wird, beträgt die Anzahl der Referenzen auf diesen Wert 1. Wenn a ({name:'cc '}) einer anderen Variablen b zugewiesen, dann wird die Anzahl der Referenzen auf diesen Wert um 1 erhöht. Wird a dagegen der Wert {name:'xx'} zugewiesen, verringert sich die Anzahl der Referenzen auf den Wert {name:'cc'} um 1. Wenn die Anzahl der Verweise auf den Wert {name:'cc'} 0 wird, bedeutet dies, dass es keine Möglichkeit mehr gibt, auf den Wert {name:'cc'} zuzugreifen, sodass der von ihm belegte Speicherplatz recycelt werden kann. Auf diese Weise wird beim Betrieb des Garbage Collectors der vom Wert {name:'cc'} belegte Speicherplatz recycelt.

Diese Methode wurde von Netscape Navigator 3.0 verwendet, es gibt jedoch ein ernstes Problem: Zirkelverweise.

function circleReferenceProbem(){
  let objectA = new Object()
  let objectB = new Object()
  objectA.someOtherObject = objectB
  objectB.anotherObject = objectA
}
Nach dem Login kopieren

Nach dem Ausführen dieser Funktion wird der Garbage Collector niemals den von ihnen belegten Speicherplatz zurückgewinnen, da die Anzahl der Referenzen dieser beiden Referenzwerte niemals 0 sein wird.

Leistung des JS-Garbage Collectors

Weil der JS-Garbage Collector in jedem zweiten Zyklus eine Garbage Collection durchführt.

Wenn die für die Variable zugewiesene Speichermenge nicht groß ist, ist die Recyclingarbeitslast des Garbage Collectors nicht groß. Wenn die Arbeitslast des Garbage Collectors jedoch zu groß ist, kann es zu Verzögerungen kommen.

Vorschläge zur Speicherverwaltung in JS

1. Verwenden Sie globale Variablen so wenig wie möglich

Variablen manuell löschen wenn möglich Referenz

Empfohlenes Tutorial: „JS Tutorial

Das obige ist der detaillierte Inhalt vonVerstehen Sie schnell die JavaScript-Garbage Collection. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
gc js
Quelle:juejin.im
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!