/GENPROFILE, /FASTGENPROFILE (프로파일링 계측 빌드 생성)

PGO(프로필 기반 최적화)를 지원하기 위해 링커에서 파일 생성 .pgd 을 지정합니다. /GENPROFILE 다른 /FASTGENPROFILE 기본 매개 변수를 사용합니다. 프로파일링 중에 속도 및 메모리 사용량보다 정밀도를 선호하는 데 사용합니다 /GENPROFILE . 정밀도보다 더 작은 메모리 사용량과 속도를 선호하는 데 사용합니다 /FASTGENPROFILE .

구문

/GENPROFILE[:profile-argument[,profile-argument ...]]
/FASTGENPROFILE[:profile-argument[,profile-argument ...]] \

profile-argument
 { COUNTER32 | COUNTER64 }
 { EXACT | NOEXACT }
MEMMAX=value
MEMMIN=value
 { PATH | NOPATH }
 { TRACKEH | NOTRACKEH }
PGD=filename

인수

모든 인수를 profile-argument 에 지정하거나 /FASTGENPROFILE에 지정할 /GENPROFILE 수 있습니다. 여기에 나열된 인수는 파이프 문자(|)로 구분되어 있으며 상호 배타적입니다. 쉼표 문자(,)를 사용하여 인수를 구분합니다. 인수, 쉼표 또는 콜론(:) 뒤에 공백을 두지 마세요.

COUNTER32 | COUNTER64
32비트 프로브 카운터의 사용을 지정하고 COUNTER64 64비트 프로브 카운터를 지정하는 데 사용합니다COUNTER32. 지정 /GENPROFILE하면 기본값은 .입니다 COUNTER64. 지정 /FASTGENPROFILE하면 기본값은 .입니다 COUNTER32.

EXACT | NOEXACT
프로브에 대해 스레드로부터 안전한 연동 증분을 지정하는 데 사용합니다 EXACT . NOEXACT 는 프로브에 대해 보호되지 않는 증분 작업을 지정합니다. 기본값은 NOEXACT입니다.

MEMMAX=value, MEMMIN=value
MEMMIN 메모리의 학습 데이터에 대한 최대 및 최소 예약 크기를 사용하고 MEMMAX 지정합니다. 값은 예약할 메모리의 크기(바이트)입니다. 기본적으로 이러한 값은 내부 추론에 의해 결정됩니다.

PATH | NOPATH
함수에 대한 각 고유 경로에 대해 별도의 PGO 카운터 집합을 지정하는 데 사용합니다 PATH . 각 함수에 대해 하나의 카운터 집합만 지정하는 데 사용합니다 NOPATH . 지정 /GENPROFILE하면 기본값은 .입니다 PATH . 지정 /FASTGENPROFILE하면 기본값은 .입니다 NOPATH .

TRACKEH | NOTRACKEH
학습 중 예외가 throw되면 정확한 개수를 유지하기 위해 추가 카운터를 사용할지 여부를 지정합니다. 정확한 개수에 대한 추가 카운터를 지정하는 데 사용합니다 TRACKEH . 예외 처리를 사용하지 않거나 학습 시나리오에서 예외가 발생하지 않는 코드에 대한 단일 카운터를 지정하는 데 사용합니다 NOTRACKEH . 지정 /GENPROFILE하면 기본값은 .입니다 TRACKEH . 지정 /FASTGENPROFILE하면 기본값은 .입니다 NOTRACKEH .

PGD=filename
파일의 기본 파일 이름을 지정합니다 .pgd . 기본적으로 링커는 확장명에서 기본 실행 파일 이름을 .pgd 사용합니다.

설명

/GENPROFILE/FASTGENPROFILE 옵션은 링커에게 PGO(프로필 기반 최적화)에 대한 애플리케이션 학습을 지원하는 데 필요한 프로파일링 계측 파일을 생성하도록 지시합니다. 이러한 옵션은 Visual Studio 2015의 새로운 기능입니다. 이러한 옵션은 사용되지 않는 /LTCG:PGINSTRUMENT옵션 /PGD및 옵션 및 /POGOSAFEMODE , VCPROFILE_ALLOC_SCALEVCPROFILE_PATH 환경 변수에 PogoSafeMode선호합니다. 애플리케이션 학습에서 생성된 프로파일링 정보는 빌드 중에 대상 전체 프로그램 최적화에 대한 입력으로 사용됩니다. 앱 학습 및 빌드 중에 성능에 대한 다양한 프로파일링 기능을 제어하는 다른 옵션을 설정할 수도 있습니다. 지정된 /GENPROFILE 기본 옵션은 특히 크고 복잡한 다중 스레드 앱의 경우 가장 정확한 결과를 제공합니다. 이 /FASTGENPROFILE 옵션은 정확도를 희생하면서 학습하는 동안 메모리 사용 공간이 낮고 성능이 더 빨라지려면 다른 기본값을 사용합니다.

를 사용하여 /GENPROFILE/FASTGENPROFILE빌드한 후 계측된 앱을 실행할 때 프로파일링 정보가 캡처됩니다. 이 정보는 프로파일링 단계를 수행하는 링커 옵션을 지정 /USEPROFILE 한 다음 최적화된 빌드 단계를 안내하는 데 사용할 때 캡처됩니다. 앱 학습 방법 및 수집된 데이터에 대한 자세한 내용은 프로필 기반 최적화를 참조 하세요.

지정 /LTCG/GENPROFILE 하거나 /FASTGENPROFILE.

Visual Studio 개발 환경에서 이 링커 옵션을 설정하려면

  1. 프로젝트의 속성 페이지 대화 상자를 엽니다. 자세한 내용은 Visual Studio에서 C++ 컴파일러 및 빌드 속성 설정을 참조하세요.

  2. 구성 속성>링커>명령줄 속성 페이지를 선택합니다.

  3. /GENPROFILE 추가 옵션 상자에 옵션 /FASTGENPROFILE 및 인수를 입력합니다. 변경 내용을 저장하도록 선택합니다 OK .

프로그래밍 방식으로 이 링커 옵션을 설정하려면

참고 항목

MSVC 링커 참조
MSVC 링커 옵션
/LTCG (링크 타임 코드 생성)