Aller au contenu

Background GC

Contexte : Le Background GC (GC d’arrière-plan) permet au garbage collector de collecter les générations 0 et 1 pendant qu’une collecte complète de la génération 2 est en cours. Cela réduit les pauses car le GC peut effectuer la majeure partie de son travail sur un thread d’arrière‑plan. Avant .NET 4.5, les collectes complètes bloquaient tous les threads de l’application. Avec le Background GC, seules de courtes pauses se produisent, améliorant la réactivité, en particulier pour les charges serveur.

using System;
using System.Runtime;
public class BackgroundGCDemo
{
public static void ShowStatus()
{
// Vérifier si le Background GC est activé (il l'est par défaut)
GCSettings.LatencyMode mode = GCSettings.LatencyMode;
Console.WriteLine($"Mode latence : {mode}");
// Pour Background GC, le mode est généralement "Interactive" ou "Batch"
}
}
Fenêtre de terminal
dotnet run
Mode latence : Interactive
  • Activé par défaut dans .NET moderne (Core 3.0+).
  • Réduit les pauses visibles dans les applications interactives.
  • Peut être désactivé via configuration (non recommandé).

Tableau de bord en temps réel – Un tableau de bord financier qui se met à jour chaque seconde bénéficie du Background GC car il évite les blocages de l’interface lors des collectes complètes.
Voir documentation .NET sur le Background GC.