다음을 통해 공유


.NET 가비지 수집 구성

성능을 향상시키려면 사일로 프로세스에 대해 .NET 가비지 수집을 올바르게 구성하는 것이 중요합니다. 팀의 결과에 따라 설정의 가장 좋은 조합은 다음과 같습니다 gcServer=truegcConcurrent=true. C# 프로젝트(.csproj) 또는 app.config 파일에서 이러한 값을 구성할 수 있습니다. 자세한 내용은 가비지 수집의 종류를 참조하세요.

.NET Core 및 .NET 5 이상

이 메서드는 전체 .NET Framework에 대해 컴파일되는 SDK 스타일 프로젝트에 지원되지 않습니다.

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

.NET Framework

전체 .NET Framework에 대해 컴파일되는 SDK 스타일 프로젝트는 이 구성 스타일을 계속 사용해야 합니다. 예제로 XML 파일 app.config을 살펴보겠습니다.

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

그러나 사일로가 기본적으로 워크스테이션 GC를 사용하는 Azure 작업자 역할의 일부로 실행되는 경우에는 쉽지 않습니다. 관련 블로그 게시물에서는 Azure 작업자 역할에 대해 동일한 구성을 설정하는 방법을 설명합니다. Azure의 서버 가비지 수집 모드를 참조하세요.

중요합니다

서버 가비지 수집은 다중 프로세서 컴퓨터에서만 사용할 수 있습니다. 따라서 애플리케이션 .csproj 파일이나 참조된 블로그 게시물의 스크립트를 통해 가비지 수집을 구성하더라도, 사일로가 단일 코어의 (가상) 머신에서 실행되는 경우에는 gcServer=true의 혜택을 누릴 수 없습니다. 자세한 내용은 GCSettings.IsServerGC 비고를 참조하세요.