Sommaire

Gestion de la mémoire par .NET

1. Principe de base

La plate-forme .NET comprend un gestionnaire de mémoire en charge de l’affectation et de la libération de la mémoire. Ces deux opérations fonctionnent bien sûr de concert, mais dans un mode très différent de C++ ou d’autres langages : au lieu de laisser au développeur le soin de gérer ces deux opérations, .NET prend en charge la totalité de la seconde opération. Le développeur réserve de la mémoire en créant une instance d’une classe grâce au mot-clé new, mais ne la libère jamais explicitement par la suite. C’est le rôle d’un module de .NET appelé ramasse-miettes (ou Garbage Collector, parfois abrégé en GC, en anglais) de se charger, lorsque le besoin s’en fait sentir, de collecter la mémoire désormais inutile et de la remettre à disposition du programme. Nous allons détailler son fonctionnement dans les chapitres suivants.

2. Gestion de mémoire automatisée et performances

Comme pour toutes les techniques simplifiant le travail de programmation, des polémiques sont nées sur la perte de performance liée à l’utilisation des ramasse-miettes. Pour couper court à une discussion potentiellement stérile, revenons simplement aux principes d’amélioration de la performance d’une application, tels qu’exposés au début ...