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.