Ramasse-miettes (gc)

Définition - Que signifie Garbage Collection (GC)?

Le garbage collection (GC) est une approche dynamique de la gestion automatique de la mémoire et de l'allocation de tas qui traite et identifie les blocs de mémoire morte et réalloue le stockage pour une réutilisation. L'objectif principal du garbage collection est de réduire les fuites de mémoire.

La mise en œuvre du GC nécessite trois approches principales, comme suit:

  • Mark-and-sweep - En cours lorsque la mémoire est épuisée, le GC localise toute la mémoire accessible, puis récupère la mémoire disponible.
  • Comptage de références - Les objets alloués contiennent un décompte de références du numéro de référence. Lorsque le nombre de mémoire est égal à zéro, l'objet est garbage et est ensuite détruit. La mémoire libérée retourne au tas de mémoire.
  • Copie de la collection - Il existe deux partitions de mémoire. Si la première partition est pleine, le GC localise toutes les structures de données accessibles et les copie sur la deuxième partition, compacter la mémoire après le processus GC et permettre une mémoire libre continue.

Certains langages de programmation et plates-formes avec GC intégré (par exemple, Java, Lisp, C # et .Net) auto-gèrent les fuites de mémoire, permettant une programmation plus efficace.

Definir Tech explique Garbage Collection (GC)

L'approche dynamique de la récupération de place en matière d'allocation automatique de tas résout les erreurs courantes et coûteuses qui entraînent souvent des défauts de programme dans le monde réel lorsqu'elles ne sont pas détectées.

Parce qu'elles sont difficiles à identifier et à réparer, les erreurs d'allocation sont coûteuses. Ainsi, le ramassage des ordures est considéré par beaucoup comme une fonctionnalité essentielle du langage qui facilite le travail du programmeur avec une gestion d'allocation de tas manuelle moindre. Cependant, GC n'est pas parfait et les inconvénients suivants doivent être pris en compte:

  • Lors de la libération de mémoire, GC consomme des ressources informatiques.
  • Le processus GC est imprévisible, ce qui entraîne des retards de session dispersés.
  • Lorsque les références d'objets inutilisés ne sont pas supprimées manuellement, GC provoque des fuites de mémoire logique.
  • GC ne sait pas toujours quand traiter dans les environnements de mémoire virtuelle des ordinateurs de bureau modernes.
  • Le processus GC interagit mal avec les systèmes de cache et de mémoire virtuelle, ce qui entraîne des difficultés de réglage des performances.

Cette définition a été écrite dans le contexte de la programmation générale