.NET

Memory Management & GC

Garbage Collection, generations, finalization, IDisposable, using statement, memory leaks, profiling

22 questions d'entretien·
Senior
1

Qu'est-ce que le Garbage Collector (GC) dans .NET ?

Réponse

Le Garbage Collector est un mécanisme automatique de gestion de la mémoire qui libère les objets non utilisés sur le tas managé. Il s'exécute automatiquement en arrière-plan pour éviter les fuites mémoire, contrairement à C/C++ où la mémoire doit être libérée manuellement. Le GC analyse les références d'objets et collecte ceux qui ne sont plus accessibles depuis les racines (roots) de l'application.

2

Quelles sont les trois générations du Garbage Collector en .NET ?

Réponse

Le GC .NET utilise trois générations : Gen0 (objets jeunes et éphémères, collectés fréquemment), Gen1 (objets de durée de vie moyenne, zone tampon entre Gen0 et Gen2), et Gen2 (objets à longue durée de vie, collectés rarement car coûteux). Ce système de générations optimise les performances en collectant d'abord les objets éphémères (Gen0) qui représentent 80-90% des objets, et en évitant de scanner fréquemment les objets persistants (Gen2).

3

Qu'est-ce que le Large Object Heap (LOH) en .NET ?

Réponse

Le Large Object Heap est un espace mémoire séparé pour les objets de 85 KB ou plus, qui appartient logiquement à Gen2. Contrairement au tas standard qui est compacté régulièrement, le LOH n'est PAS compacté par défaut pour éviter le coût de copie de gros objets. Cela peut causer de la fragmentation mémoire. Depuis .NET 4.5.1, il est possible d'activer le compactage du LOH manuellement avec GCSettings.LargeObjectHeapCompactionMode.

4

Quel est le rôle du pattern IDisposable en .NET ?

5

Que fait le using statement en C# ?

+19 questions d'entretien

Maîtrise .NET pour ton prochain entretien

Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.

Commencer gratuitement