Поделиться через


Настройка сборки мусора .NET

Для хорошей производительности важно настроить сборку мусора .NET для процесса силона правильным способом. Лучшее сочетание параметров на основе результатов команды заключается в настройке gcServer=true и gcConcurrent=true. Эти значения можно настроить в проекте C# (CSPROJ) или app.config. Дополнительные сведения см. в разделе "Вкусы сборки мусора".

.NET Core и .NET 5 или более поздней версии

Этот метод не поддерживается в проектах стилей SDK, скомпилированных в полной платформа .NET Framework

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

.NET Framework

Проекты стилей ПАКЕТА SDK, скомпилированные в полной платформа .NET Framework, по-прежнему должны использовать этот стиль конфигурации, рассмотрим пример XML-файла app.config:

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

Однако это не так просто сделать, если silo выполняется как часть рабочей роли Azure, которая по умолчанию настроена на использование рабочей станции GC. Существует соответствующая запись блога, которая описывает настройку той же конфигурации для рабочей роли Azure, см . в режиме сборки мусора сервера в Azure.

Внимание

Сборка мусора сервера доступна только на компьютерах с несколькими обработчиками. Таким образом, даже если вы настраиваете сборку мусора с помощью файла application .csproj или с помощью скриптов в записи блога, если silo работает на (виртуальной) машине с одним ядром, вы не получите преимущества gcServer=true. Дополнительные сведения см. в статье GC Параметры. Замечания IsServerGC.