Maison  >  Article  >  interface Web  >  Qu'est-ce que le mécanisme de récupération de place js ?Introduction au mécanisme de récupération de place js

Qu'est-ce que le mécanisme de récupération de place js ?Introduction au mécanisme de récupération de place js

不言
不言original
2018-08-15 17:40:444529parcourir

Le contenu de cet article porte sur ce qu'est le mécanisme de collecte des ordures js ? Une introduction au mécanisme de collecte des ordures js. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

JS dispose d'un mécanisme automatique de collecte des ordures. Le garbage collector est exécuté périodiquement à intervalles fixes.

Méthodes courantes de collecte des déchets en JS : effacement des marques et comptage des références.

1. Méthode d'effacement des marques :

Principe de fonctionnement : Lorsqu'une variable entre dans l'environnement, marquez la variable comme « entrant dans l'environnement ». Lorsqu'une variable quitte l'environnement, elle est marquée comme "quittant l'environnement". Le souvenir marqué « sortie de l'environnement » est recyclé.

Workflow :

  • Le ramasse-miettes marquera toutes les variables stockées en mémoire pendant le fonctionnement ;

  • supprime les balises des variables de l'environnement et les variables référencées par les variables de l'environnement

  • sont marquées seront considérées comme des variables prêtes à être supprimées

    ;

  • Le garbage collector termine le travail de nettoyage de la mémoire, détruit ces valeurs marquées et récupère l'espace mémoire qu'elles occupent.

2. Méthode de comptage de références :

Principe de fonctionnement : suivez et enregistrez le nombre de fois que chaque valeur est référencée.

Workflow :

  • déclare une variable et attribue une valeur de type référence à la variable. Le nombre de références de cette valeur de type référence est 1 ; >

    La même valeur est affectée à une autre variable, et le numéro de référence de cette valeur de type référence est augmenté de 1
  • Lorsque la variable contenant cette valeur de type référence se voit attribuer une autre valeur, alors le nombre de références à cette valeur de type référence est réduit de 1

  • ; Lorsque le nombre de références devient 0, cela signifie qu'il n'y a aucun moyen d'accéder à cette valeur.

  • Lorsque le garbage collector s'exécutera la prochaine fois, il libérera la mémoire occupée par la valeur avec un décompte de référence de 0.

  • Mais lorsqu'il y a une référence circulaire, la mémoire ne peut pas être libérée - provoquant une fuite de mémoire

  • Parce que l'implémentation de BOM et DOM dans IE utilise COM et COM objets Le mécanisme de garbage collection utilisé est la stratégie technologique de référence. Il y aura donc un problème de référence circulaire.

Solution : Déconnectez manuellement l'objet JS et le DOM et attribuez la valeur à null. IE9 convertit le DOM et le BOM en véritables objets JS, ce problème est donc évité.

Recommandations associées :

Mécanisme de collecte des déchets de PHP Que sont les déchets recyclables Collecte des déchets Déchets non recyclables

À propos de PHP5 .3 mécanisme de collecte des ordures

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!

Déclaration:
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