Sdílet prostřednictvím


Konfigurace uvolňování paměti .NET

Pro dobrý výkon je důležité nakonfigurovat uvolňování paměti .NET pro proces sila správným způsobem. Nejlepší kombinací nastavení na základě zjištění týmu je nastavit gcServer=true a gcConcurrent=true. Tyto hodnoty můžete nakonfigurovat v projektu C# (.csproj) nebo app.config. Další informace naleznete v tématu Flavors of garbage collection.

.NET Core a .NET 5+

Tato metoda není podporována u projektů stylu sady SDK kompilujících do úplného rozhraní .NET Framework.

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

.NET Framework

Projekty stylu sady SDK kompilující s úplným rozhraním .NET Framework by stále měly tento styl konfigurace používat, zvažte ukázkový soubor XML app.config :

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

To ale není tak snadné, pokud se silo spustí jako součást role pracovního procesu Azure, která je ve výchozím nastavení nakonfigurovaná tak, aby používala GC pracovní stanice. Existuje relevantní blogový příspěvek, který popisuje, jak nastavit stejnou konfiguraci pro roli pracovního procesu Azure, viz režim uvolňování paměti serveru v Azure.

Důležité

Uvolňování paměti serveru je k dispozici pouze na počítačích s více procesory. Proto i když nakonfigurujete uvolňování paměti buď prostřednictvím souboru .csproj aplikace, nebo prostřednictvím skriptů v odkazované blogový příspěvek, pokud silo běží na (virtuálním) počítači s jedním jádrem, nebudete mít výhody gcServer=true. Další informace naleznete v tématu GC Nastavení. IsServerGC poznámky.