Sobes.tech
Junior

Qu'est-ce que le ramasse-miettes (Garbage Collector) ?

sobes.tech IA

Réponse de l'IA

Mécanisme automatique de gestion de la mémoire qui libère les objets inutilisés dans le tas.

Principes de fonctionnement :

  • Détection de l'accessibilité des objets : Surveille les objets référencés par des objets vivants (accessibles) depuis les racines (par exemple, la pile des threads).
  • Libération des objets inaccessibles : Les objets sans références sont considérés comme de la "mauvaise herbe" et leur mémoire peut être réutilisée.

Types de ramasseurs de déchets (dépendent du langage/plateforme) :

  • Marquage et balayage : Marque les objets accessibles (marquage), puis parcourt le tas et libère ceux qui ne sont pas marqués (nettoyage). Peut entraîner une fragmentation de la mémoire.
  • Copie : Divise le tas en deux parties. Copie les objets vivants dans la nouvelle partie, puis nettoie l'ancienne. Prévenir la fragmentation, mais nécessite plus de mémoire.
  • Générationnel : Divise les objets par âge en générations. Collecte la majorité des déchets dans la "jeune" génération, où la plupart des objets ne vivent pas longtemps.

Avantages :

  • Réduction de la probabilité de fuites de mémoire.
  • Simplification du développement (pas besoin de libérer explicitement la mémoire).

Inconvénients :

  • Peut provoquer des retards (pauses) lors de la collecte.
  • Temps de collecte imprévisible.