Gestion de la mémoire - Collection des ordures en javascript

Gestion de la mémoire - Collection des ordures en javascript
JavaScript ne fournit pas beaucoup de gestion de la gestion de la mémoire ou de la collecte des ordures car nous ne pouvons pas utiliser directement les opérations liées à la mémoire, mais à des fins de connaissance, il est bon de savoir comment il fonctionne.

En langue C, les développeurs allouent ou traitent manuellement la mémoire avec malloc (), calloc (), realloc () et free () méthodes.

Les valeurs JavaScript fonctionnent comme les valeurs sont allouées après la création d'objets ou de chaînes; et sont automatiquement libérés lorsque le processus est terminé, donc tout ce processus est connu sous le nom de collection de déchets. Le cycle de vie de la gestion de la mémoire est basé sur 3 étapes.

  1. Allocation de mémoire
  2. Utilisation de la mémoire
  3. Libérer de la mémoire

Attribution de la mémoire en JavaScript

Après avoir introduit la variable, JavaScript alloue la mémoire à ses variables assignées. Au moment où la mémoire n'est plus utile, la mémoire sera publiée. Lorsque la mémoire est publiée, plusieurs problèmes, y compris la fuite de mémoire, surviennent. La tâche la plus difficile consiste à découvrir la mémoire qui n'est pas utile et à traiter efficacement la mémoire à l'aide d'un collecteur de déchets. Le collecteur des ordures suit la mémoire qui n'est pas nécessaire, mais la tâche la plus difficile est de suivre la mémoire inutilisée.

Si vous déclarez les valeurs aux variables, l'allocation de mémoire en JavaScript est attribuée automatiquement.

Dans ces exemples, la mémoire allouée variable1 pour un nombre tandis que la chaîne est allouée dans la mémoire de la variable2 comme indiqué ci-dessous.

variable var1 = 100;
var variable2 = "allocation de mémoire";

Si vous souhaitez attribuer de la mémoire pour de nombreux objets, utilisez le code suivant.

variable var3 =
variable4: 5,
variable5: 'test'

Tableau alloué dans la mémoire de la variable6 comme indiqué ci-dessous.

var variable6 = [1,2,3,4,5]

Vous pouvez également allouer de la mémoire pour des méthodes distinctes. Voici le code pour allouer la mémoire à une méthode.

fonction function_name (x)
retour x + 20;

Éboueur

Le processus d'allocation et de libération de la mémoire lorsqu'il n'est pas nécessaire est connu sous le nom de collection de déchets. Les algorithmes sont utilisés pour savoir quelle mémoire n'est pas pertinente pour les tâches. Cette section traite explicitement des algorithmes principaux utilisés dans la collecte des ordures et leurs limites.

Algorithme de collecte de décomptes de référence

Les algorithmes de collecte de déchets de référence sont considérés comme le grand type fondamental de collection d'ordures. Cet algorithme décide non seulement si une ressource est importante ou non, il filtre également la mémoire pour décider si un élément a d'autres cas qui se référent à celui-ci. Une instance qui a des références nuls est considérée comme des ordures.

Algorithme Mark & ​​Sweep

Un collecteur de déchets aide à libérer de la mémoire chaque fois qu'une instance est inaccessible, au lieu d'un zéro faisant référence à un objet. Initialement, le collecteur des ordures recherche toutes les instances globales ou racines ainsi que leurs références d'objet. Grâce à cet algorithme, le collecteur se distinguera entre les cas accessibles et inaccessibles. Par la suite, des instances inaccessibles seront collectées automatiquement par le collecteur des ordures.

Conclusion

JavaScript alloue efficacement la mémoire et, par la suite, le collecteur des ordures aide à détecter cette mémoire allouée et à la récupérer chaque fois que la mémoire n'est pas utile. Nous avons appris comment gérer la mémoire et collecter des ordures en javascript dans cet article. Nous devons faire attention que nous devons mettre en œuvre des logiciels qui ne peuvent pas provoquer la référence circulaire aux variables. Nous devons nous assurer que nous ne pouvons rien programmer qui jettera les variables du cycle des ordures.