#code #algorithme #flutter

Le Garbage Collector (GC) est une technique de gestion de la mémoire allouée dans un programme. Inventée en 1959 par John McCarthy pour le langage Lisp, elle permet d’automatiser la désallocation de mémoire inutilisée, simplifiant donc la tâche du programmeur.

Le GC présente des avantages (évite les “dangling pointers”, les “double free bugs” et certains memory leaks) et ses inconvénients (moindres performances).

Il existe différentes méthodes de GC : - Le “Tracing”, le plus commun, parcours à intervalles réguliers les objets du programme et libère ceux qui n’ont aucune référence. C’est utilisé en Java, en Go, en Dart en C#, D et dans les langages de scripts. - Le “référence counting”: chaque objet compte le nombre de fois qu’il est référencé. Si ce nombre tombe a zéro, il est libéré. - La technique du “Escape Analysis” permet d’allouer un objet sur la stack plutôt que la head, si l’objet ne sort pas de son scope (utilisé en Go)