Dela via


Konfigurera .NET-skräpinsamling

För bra prestanda är det viktigt att konfigurera .NET-skräpinsamling för siloprocessen på rätt sätt. Den bästa kombinationen av inställningar baserat på teamets resultat är att ange gcServer=true och gcConcurrent=true. Du kan konfigurera dessa värden i C#-projektet (.csproj) eller en app.config. Mer information finns i Smak av skräpinsamling.

.NET Core och .NET 5+

Den här metoden stöds inte med SDK-formatprojekt som kompileras mot hela .NET Framework

<PropertyGroup>
    <ServerGarbageCollection>true</ServerGarbageCollection>
    <ConcurrentGarbageCollection>true</ConcurrentGarbageCollection>
</PropertyGroup>

.NET Framework

SDK-formatprojekt som kompileras mot det fullständiga .NET Framework bör fortfarande använda det här konfigurationsformatet, överväg en exempelfil för app.config XML:

<configuration>
    <runtime>
        <gcServer enabled="true"/>
        <gcConcurrent enabled="true"/>
    </runtime>
</configuration>

Detta är dock inte lika lätt att göra om en silo körs som en del av en Azure Worker-roll, som som standard är konfigurerad för att använda arbetsstation GC. Det finns ett relevant blogginlägg som beskriver hur du ställer in samma konfiguration för en Azure Worker-roll i läget Server skräpinsamling i Azure.

Viktigt!

Server skräpinsamling är endast tillgänglig på datorer med flera processorer. Även om du konfigurerar skräpinsamlingen antingen via filen .csproj eller via skripten i det refererade blogginlägget får du inte fördelarna gcServer=truemed om silo körs på en (virtuell) dator med en enda kärna. Mer information finns i GC Inställningar. IsServerGC-kommentarer.