Sobes.tech
Junior

Comment fonctionne le ramasse-miettes en JavaScript?

sobes.tech IA

Réponse de l'IA

En JavaScript, le ramasse-miettes fonctionne automatiquement, en identifiant les objets qui ne sont plus accessibles depuis les racines atteignables (objet global, appel de fonction en cours, etc.) et en libérant la mémoire qu’ils occupent.

Principaux mécanismes :

  • Compteur de références : Méthode obsolète comptant le nombre de références à un objet. La mémoire est libérée lorsque le compteur atteint zéro. Inconvénient : ne peut pas gérer les références cycliques.
  • Marquage et balayage : Méthode moderne et la plus courante.
    1. Marquage : En partant des racines, le ramasse-miettes parcourt récursivement le graphe d’objets, en marquant tous les objets accessibles.
    2. Nettoyage : Parcourt le tas et supprime tous les objets non marqués comme accessibles.

L’avantage du "Marquage et balayage" par rapport au "Compteur de références" est qu’il gère correctement les références cycliques.

Le moteur JavaScript (par exemple, V8 dans Chrome) surveille constamment l’utilisation de la mémoire et exécute le ramasse-miettes selon les besoins. Le développeur ne peut pas contrôler directement ce processus, mais peut y influencer indirectement en évitant les références inutiles et en gérant le cycle de vie d’objets complexes.