샘플 프로필 기반 최적화(SPGO)를 위한 샘플 프로필 데이터를 준비하고 관리하는 데 SPDConvert를 사용합니다.
이 도구는 SPT 파일의 원시 하드웨어 샘플과 SPD의 코드 구조와 상관 관계를 지정합니다. 이 단계에서는 샘플 상관 관계, 흐름 평활화 및 크기/속도 결정을 수행하고 흐름 그래프에 주석이 추가된 실행 횟수가 있는 보강된 SPD 파일을 생성합니다.
랩 벤치마크, 내부 모니터링 및 프로덕션 원격 분석과 같은 여러 원본의 데이터를 단일 변환으로 결합할 수 있습니다. 특정 시나리오의 중요성을 강조하기 위해 SPT 파일을 여러 번 지정할 수 있습니다. 중요한 벤치마크 SPT를 세 번 나열하면 가중치가 세 배로 증가합니다.
이 도구는 다음 세 가지 모드로 작동합니다.
- 가져오기 .SPT 데이터를 /SPGO 빌드용 .SPD 파일로
- 추출합니다. .PDB에서 포함된 .SPD 파일을
- 별도의 프로파일링 실행에서 생성된 여러 .SPD 파일을 병합합니다
SPDConvert 는 다음 세 가지 파일 형식으로 작동합니다.
-
ETL (이벤트 추적 로그) 로 기록된 원시 하드웨어 성능 이벤트
xperf -
SPT (샘플 프로필 추적)
SPTAggregate에 의해 ETL 파일에서 생성된 패키지 샘플 이벤트 -
SPD (샘플 프로필 데이터베이스) 최적화된 빌드 중에 컴파일러에서 사용하는 처리된 프로필 데이터입니다. 빌드하는 동안 PDB 기호 파일에 SPD 파일을 포함할 수도 있습니다.
/spdembed
문법
기존 SPD 파일로 SPT 데이터를 가져옵니다.
SPDConvert[옵션] spdfilesptfile(s)
PDB에서 포함된 SPD 파일을 추출합니다.
SPDConvert/extractpdbfilespdfile
여러 SPD 파일을 하나로 병합합니다.
SPDConvert/mergeoutputspdfilespdfile(s)
매개 변수
가져오기 모드
옵션
가져오기 모드에서 다음 옵션을 지정합니다.
- /모드:<Ip|LBR> 프로필 모드를 선택합니다. 명령 포인터 프로필 데이터(기본값)에 IP 를 사용하거나 마지막 분기 레코드 프로필 데이터의 경우 LBR 을 사용합니다.
- /재설정: 개수를 0으로 다시 설정합니다. 이 작업은 SPT를 무시합니다. 새 데이터를 가져오기 전에 SPD 파일을 다시 설정하거나 지정된 파일이 없는 경우 빈 SPD 파일을 만들려면 이 옵션을 사용합니다.
- /sptlist:<파일> 텍스트 파일에서 줄당 하나의 파일 이름을 사용하여 SPT 파일 이름을 지정합니다.
- /요약 SPD 파일의 요약을 인쇄합니다.
- /도움말 도움말 정보를 표시합니다.
spdfile
샘플 데이터를 가져올 SPD 파일입니다.
sptfiles
가져올 하나 이상의 SPT 파일입니다. SPT 파일은 SPTAggregate에서 생성됩니다.
EXTRACT MODE(/extract)
pdbfile
포함된 SPD를 포함하는 PDB 파일입니다.
spdfile
생성할 출력 SPD 파일입니다.
MERGE MODE (/merge)
outputspdfile
생성할 출력 SPD 파일입니다.
/은퇴:<N> 프로필 데이터 사용 중지율을 N/16으로 설정합니다. 여기서 0은 N ≤ 16을 ≤. 기본값은 8입니다. 이 값은 새 SPT 데이터를 추가할 때 SPD에서 삭제할 기존 데이터의 양을 제어합니다. 예를 들어 새 /retire:8 SPT 데이터를 추가하기 전에 기존 데이터의 8/16(절반)을 삭제합니다. 이 설정은 이전 데이터의 절반을 삭제하기 때문에 최신 프로필 데이터의 가중치를 더 많이 적용합니다. 가장 일반적인 두 가지 사용법은 /retire:0 모든 프로필 실행에 동일한 가중치를 부여하거나 /retire:16 모든 이전 데이터를 삭제하기 때문에 최신 데이터 개수만 만드는 것입니다.
/retire:N을 사용하여 SPDConvert이 이전 프로필 데이터를 얼마나 적극적으로 덜 강조할지 제어합니다. 이 "전달" 개념을 사용하면 시간이 많이 걸리는 새 프로파일링 데이터로 다시 시작하지 않고 기존 SPD 데이터를 사용하여 프로필을 새로 고칠 수 있습니다. 이 개념은 SPGO 자습서 - 빌드 전체에서 SPD 정보 재사용에 대해 자세히 설명합니다.
spdfiles
병합할 하나 이상의 SPD 파일입니다.
비고
참고
Visual Studio 개발자 명령 프롬프트에서 이 도구를 실행합니다.
SPDConvert 는 SPGO 워크플로의 기본 변환 도구입니다.
xperf를 사용하여 추적을 수집하고 SPTAggregate를 사용하여 이를 SPT 파일로 변환한 후, SPDConvert를 사용하여 샘플 데이터를 SPD 파일로 가져옵니다. 플래그를 사용하여 /SPGO 결과 SPD 파일을 컴파일러에 전달하여 최적화된 이진 파일을 빌드합니다.
빌드하는 동안 PDB에 포함된 SPD 파일을 복구하는 데 /extract 사용합니다/SPGO.
다시 빌드하기 전에 여러 프로파일링 세션에서 SPD 파일을 결합하는 데 사용합니다 /merge .
바이너리 파일의 GUID와 age는 SPT 파일과 SPD 파일 사이에서 일치해야 합니다. 일치하지 SPDConvert 않는 경우 "SPD 버전 호환되지 않음" 오류를 보고합니다. SPT 파일 SPTDump /progid 에서 이진 식별자를 확인하고 SPD 파일을 확인하는 데 사용합니다SPDDump /header.
SPD 파일에 기록된 바이너리의 GUID 및 Age는 SPT 파일과 일치해야 합니다. 이 오류를 진단하려면 SPT 파일에서 이진 식별자를 검사하고 SPTDump /progid SPD 파일을 검사하는 데 사용합니다SPDDump /header. 유효한 SPD 파일은 가능한 범위에서 사용됩니다. 프로그램의 제어 흐름을 변경하지 않는 코드에 대한 사소한 업데이트는 허용됩니다. 변경되지 않은 함수는 최적화에도 데이터를 사용합니다. 유효하지만 관련이 없는 SPD를 제공하는 경우 프로세스가 작동하지만 최적화에 사용할 수 있는 데이터는 없을 수 있습니다.
Example
이 예제에서는 SPT 파일의 LBR 프로필 데이터를 SPD 파일로 가져옵니다.
SPDConvert /mode:LBR sample.spd sample.spt
이 예제에서는 SPT 파일 목록을 사용하여 IP 프로필 데이터를 가져옵니다.
SPDConvert /mode:IP /sptlist:mysptfiles.txt sample.spd
이 예제에서는 SPD 파일에 프로필 데이터의 요약을 출력합니다.
SPDConvert /summary sample.spd
이 예제에서는 PDB 파일에서 포함된 SPD를 추출합니다.
SPDConvert /extract sample.pdb sample_extracted.spd
이 예제에서는 다른 프로파일링 실행에서 두 SPD 파일을 병합합니다.
SPDConvert /merge combined.spd run1.spd run2.spd
참고하십시오
자습서: 샘플 프로필 기반 최적화(SPGO)를 사용하여 성능을 향상시키기
SPDDump
SPTAggregate
SPTDump