Maison > interface Web > js tutoriel > Comprendre rapidement le garbage collection JavaScript

Comprendre rapidement le garbage collection JavaScript

Guanhui
Libérer: 2020-05-25 09:38:00
avant
2152 Les gens l'ont consulté

Comprendre rapidement le garbage collection JavaScript

Avant-propos

JS dispose d'un mécanisme automatique de collecte des ordures En d'autres termes, l'environnement d'exécution gère la mémoire utilisée lors de l'exécution du code.

Le principe du garbage collection JS

L'environnement d'exécution trouvera les variables qui ne sont plus utilisées, puis libérera la mémoire qu'elles occupent .

Stratégie de collecte des ordures JS

Effacement des marques

Lorsqu'une variable entre dans l'environnement, elle Marquez cette variable comme "entrant dans l'environnement" et lorsque la variable quitte l'environnement, marquez-la comme "quittant l'environnement".

La façon de marquer les variables dépend de l'implémentation spécifique. Par exemple, vous pouvez utiliser une liste de variables « entrer dans l'environnement » et une liste de variables « quitter l'environnement » pour suivre quelles variables ont changé.

Les navigateurs qui ont utilisé la suppression des balises incluent IE, Firefox et Chrome.

Comptage de références

Il s'agit d'une stratégie de récupération de place moins courante, qui suit le nombre de fois que chaque valeur est référencée.

Lorsqu'une variable a est déclarée et qu'une valeur de type référence ({name:'cc'}) est attribuée à la variable, le nombre de références à cette valeur est 1. Si a ({name:'cc'} '}) est affecté à une autre variable b, alors le nombre de références à cette valeur est augmenté de 1. Au contraire, si a reçoit la valeur {name:'xx'}, le nombre de références à la valeur {name:'cc'} est réduit de 1. Lorsque le nombre de références à la valeur {name:'cc'} devient 0, cela signifie qu'il n'y a plus moyen d'accéder à la valeur {name:'cc'}, donc l'espace mémoire occupé par celle-ci peut être recyclé. De cette façon, lorsque le garbage collector fonctionnera, l'espace mémoire occupé par la valeur {name:'cc'} sera recyclé.

Cette méthode a été utilisée par Netscape Navigator 3.0, mais il y a un sérieux problème : la référence circulaire.

function circleReferenceProbem(){
  let objectA = new Object()
  let objectB = new Object()
  objectA.someOtherObject = objectB
  objectB.anotherObject = objectA
}
Copier après la connexion

Après avoir exécuté cette fonction, comme le nombre de références de ces deux valeurs de référence ne sera jamais 0, le garbage collector ne récupérera jamais l'espace mémoire qu'elles occupent.

Performance du garbage collector JS

Parce que le garbage collector JS effectue le garbage collection tous les deux cycles.

Si la quantité de mémoire allouée à la variable n'est pas importante, alors la charge de travail de recyclage du garbage collector ne sera pas importante. Cependant, lorsque la charge de travail du garbage collector est trop importante, des retards sont susceptibles de se produire.

Suggestions pour gérer la mémoire dans JS

1. Utilisez le moins possible les variables globales

2. Effacez les variables manuellement. si possible Référence

Tutoriel recommandé : "Tutoriel JS"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
gc js
source:juejin.im
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal