Server GC
멀티 프로세서(또는 멀티 코어)를 탑재한 컴퓨터에서만 작동한다. 각 프로세서마다 하나의 GC 힙(그리고 하나의 GC 쓰레드)를 할당하고, 가비지를 병렬로 수집한다. 세 가지 GC 모드 중 가장 성능과 확장성이 좋다.
System.Runtime.GCSettings.IsServerGC 프로퍼티를 사용하면 현재 애플리케이션이 Server GC 모드로 작동하고 있는지 알 수 있다.
특정 애플리케이션을 GC 모드에서 작동시키고 싶으면 Application Configuration File, 속칭 App.config 파일을 다음과 같이 구성하면 된다.
<configuration> <runtime> <gcServer enabled="true" /> </runtime> </configuration>
Workstation GC
기본값이다. 프로세서를 하나만 탑재한 컴퓨터라면 선택권이 없다.
Concurrent GC
멀티 프로세서를 탑재한 컴퓨터에서 Workstation 모드로 작동한다. 프로세서가 하나인 경우엔 애플리케이션을 멈추고 가비지를 수집한다. 프로세서가 여러 개라면, 한쪽에선 가비지를 수집하고, 한쪽은 애플리케이션을 운영하면 된다.
<configuration> <runtime> <gcConcurrent enabled="true" /> </runtime> </configuration>
Latency Mode
2008년에 나올 새 Visual Studio ‘Orcas’에 추가될 가비지 콜렉트 모드이다. 기존엔 애플리케이션이 한 번 구동되면 모드를 바꿀 수 없었다. Latency 모드는 상황에 따라 Batch, Interactive, 그리고 LowLatency 모드를 오갈 수 있다.
주의 사항
-
Server 모드를 사용하면 Concurrent 모드가 자동으로 무효화된다.
-
프로세서가 두 개뿐이라면 Workstation 모드와 Server 모드 중 하나를 사용할 수 있다.
참고 문헌
Author Details
Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.