Aller au contenu

Workstation GC vs Server GC

Contexte : .NET propose deux modes de GC adaptés à différents types d’applications. Workstation GC est conçu pour les applications client (WPF, WinForms, Console) où la réactivité de l’UI est critique ; il utilise un seul thread de GC et privilégie une faible latence. Server GC est destiné aux applications serveur (ASP.NET, services) qui ont besoin d’un débit élevé et d’une bonne évolutivité ; il crée un thread de GC par cœur CPU et collecte les tas en parallèle.

ModeUtilisationCaractéristiques
Workstation GCApplications clientUn seul thread GC, optimisé pour la faible latence
Server GCApplications serveurPlusieurs threads GC, optimisé pour le débit
<!-- Configuration dans .csproj ou runtimeconfig.json -->
<PropertyGroup>
<ServerGarbageCollection>true</ServerGarbageCollection>
</PropertyGroup>
// Vérifier le mode actuel
using System;
using System.Runtime;
Console.WriteLine($"Mode GC : {(GCSettings.IsServerGC ? "Server" : "Workstation")}");
Fenêtre de terminal
dotnet run
Mode GC : Workstation
  • Workstation est le mode par défaut pour les applications client.
  • Server est recommandé pour les applications backend avec de nombreux threads et une forte allocation mémoire.

API web ASP.NET Core – Par défaut, elle s’exécute en mode Server GC pour gérer efficacement de nombreuses requêtes concurrentes. Vous pouvez le modifier dans le fichier projet.
Voir documentation .NET sur les modes GC.