Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aby zapewnić dobrą wydajność, ważne jest, aby prawidłowo skonfigurować zbieranie nieużywanych obiektów platformy .NET dla procesu w silosie. Na podstawie ustaleń zespołu najlepszym połączeniem ustawień jest gcServer=true i gcConcurrent=true. Te wartości można skonfigurować w projekcie języka C# (csproj) lub plikuapp.config . Aby uzyskać więcej informacji, zobacz Flavors of garbage collection (Smaki odzyskiwania pamięci).
.NET Core i .NET 5+
Ta metoda nie jest obsługiwana dla projektów typu SDK kompilujących się przeciwko pełnej wersji .NET Framework.
<PropertyGroup>
<ServerGarbageCollection>true</ServerGarbageCollection>
<ConcurrentGarbageCollection>true</ConcurrentGarbageCollection>
</PropertyGroup>
Środowisko .NET Framework
Projekty w stylu zestawu SDK kompilujące się względem pełnego programu .NET Framework powinny nadal używać tego stylu konfiguracji. Rozważmy przykładowy plik XMLapp.config :
<configuration>
<runtime>
<gcServer enabled="true"/>
<gcConcurrent enabled="true"/>
</runtime>
</configuration>
Nie jest to jednak tak proste, jeśli silos działa w ramach roli procesu roboczego platformy Azure, która domyślnie korzysta ze stacji roboczej GC. Istotny wpis na blogu omawia, jak ustawić taką samą konfigurację dla roli Worker w Azure; zobacz Tryb zbierania śmieci dla serwera w Azure.
Ważne
Zbieranie śmieci serwera jest dostępne tylko na komputerach wieloprocesorowych. W związku z tym, nawet jeśli skonfigurujesz zarządzanie pamięcią za pośrednictwem pliku csproj aplikacji lub skryptów w wymienionym wpisie na blogu, nie uzyskasz korzyści z gcServer=true, jeśli silos działa na maszynie (wirtualnej) z jednym rdzeniem. Aby uzyskać więcej informacji, zobacz uwagi GCSettings.IsServerGC.