Native AOT 빌드 시 개발자는 <OptimizationPreference> MSBuild 속성을 사용하여 애플리케이션의 특성에 맞는 두 가지 주요 최적화 모드를 선택할 수 있습니다. 컴파일러는 기본적으로 실행 속도와 파일 크기 사이의 균형을 맞추는 **혼합 방식(blended approach)**을 사용하지만, 특정 목적을 위해 다음과 같은 모드를 명시할 수 있습니다.

1. Speed (속도 최적화 모드)

  • 목표: **코드 실행 속도와 최고 처리량(peak throughput)**을 극대화하는 것을 최우선으로 합니다.
  • 특징: 성능 테스트 결과, 이 모드를 사용하면 초당 요청 수(RPS)가 증가하고 실행 속도가 빨라지는 경향이 있습니다. 다만, 실행 속도 향상을 위해 다른 성능 지표나 파일 크기가 영향을 받을 수 있습니다.

2. Size (크기 최적화 모드)

  • 목표: 실행 파일의 크기를 최소화하는 것을 최우선으로 합니다.
  • 특징: 배포 패키지의 용량을 줄이는 데 집중하며, 이 과정에서 실행 속도 등 다른 성능 메트릭이 다소 희생될 수 있습니다. 마이크로서비스나 클라우드 네이티브 환경에서 컨테이너 이미지 크기를 줄여야 할 때 유용합니다.

이러한 최적화 모드 선택은 **프로젝트 파일(.csproj)**에 직접 설정하거나 빌드 인수로 전달하여 적용할 수 있습니다.

추가적으로, 소스에 따르면 BenchmarkDotNet 라이브러리는 Native AOT 코드를 벤치마킹할 때 기본적으로 OptimizationPreference=Speed 설정을 사용하여 빌드합니다.

Posted by gurupia
,