WPR 명령줄 옵션
WPR(Windows Performance Recorder)은 간단한 명령줄 인터페이스를 제공합니다. WPR의 전체 복잡성은 기록 프로필에 포함되어 있습니다.
일반 옵션
WPR에는 Windows 8.1 이상의 버전 운영 체제가 필요합니다.
구문
wpr FirstLevelOption [<arguments>] [Additional options [<arguments>]]
다음과 같은 추가 도움을 얻을 수 있습니다.
wpr -help [start | stop | status | profiles | providers | tracing | boottrace | heap | hardwarecounter | advanced]
다음 FirstLevelOptions를 사용할 수 있습니다.
옵션 | 설명 |
---|---|
-help | 하위 수준 도움말 정보 목록을 제공합니다. |
-profiles | 프로필의 프로필 이름 및 설명을 열거합니다. |
-purgecache | 동적 기호 캐시를 제거합니다. |
-start | 하나 이상의 프로필을 시작합니다. |
-marker | 이벤트 마커를 실행합니다. |
-markerflush | (사용되지 않음) 이벤트 마커를 실행하고 작업 집합을 플러시합니다. |
-status | 활성 기록의 상태를 표시합니다(있는 경우). |
-profiledetails | 이벤트 마커를 실행하고 작업 집합을 플러시합니다. |
-exportprofile | 기본 제공 프로필을 파일로 내보냅니다. |
-providers | 공급자에 대한 자세한 정보를 표시합니다. |
-cancel | WPR에서 시작된 기록을 취소합니다(있는 경우). |
-stop | WPR에서 시작한 기록을 취소하고 저장합니다(있는 경우). |
-merge | etl 파일을 지정된 파일에 병합합니다. |
-flush | WPR에서 시작한 로깅 세션을 플러시합니다(있는 경우). |
-로그 | 이벤트 로그에 저장된 디버그 정보를 구성합니다. |
-disablepagingexecutive | 페이징 실행 사용 안 함 설정을 변경합니다. |
-heaptracingconfig | 프로세스의 힙 추적 설정을 변경합니다. |
-snapshotconfig | 프로세스에 대한 스냅샷 설정을 변경합니다. |
-capturestateondemand | 현재 기록에서 구성된 공급자의 상태를 캡처합니다. |
-pmcsources | 시스템에서 사용할 수 있는 PMU 이벤트 목록을 쿼리합니다. |
-pmcsessions | PMU 이벤트를 사용하여 세션 목록을 쿼리합니다. |
-setprofint | 샘플링된 프로필 간격을 설정합니다. |
-profint | 현재 프로필 간격을 쿼리합니다. |
-resetprofint | 기본 프로필 간격 값을 복원합니다. |
-boottrace | 자동 로거/글로벌 로거 세션에 대한 레지스트리 항목을 구성합니다. |
-enableperiodicsnapshot | 지정된 간격 및 지정된 프로세스 ID에 대해 주기적인 스냅샷을 사용하도록 설정합니다. |
-disableperiodicsnapshot | 모든 프로세스에 대해 주기적인 스냅샷을 사용하지 않도록 설정합니다. |
-singlesnapshot | 지정된 프로세스에 대한 주문형 스냅샷을 가져옵니다. |
프로필
프로필 옵션은 기록에서 사용하는 WPR 프로필을 나열합니다.
구문
wpr -profiles [<path>]
다음 테이블에서는 이 옵션에 적용할 수 있는 사용 가능한 인수에 대해 설명합니다. 기본 제공 프로필을 보려면 인수를 생략합니다.
인수 | 설명 |
---|---|
<path> | 프로필 정의를 포함하는 파일의 경로와 이름을 지정합니다. 예: wpr -profiles “c:\Users\User1\Documents\WPR Files\Custom Profiles\CustomProfile1.wprp” |
Start
시작 옵션은 하나 이상의 프로필을 사용하여 기록을 시작합니다.
구문
wpr -start <profile> [-start <profilen>]... [-filemode] [-recordtempto <temp folder path>] [-onoffscenario <OnOff Transition Type>] [-onoffresultspath <path to which the trace files are saved>] [-onoffproblemdescription <description of the scenario>] [-numiterations <number of iterations for OnOff tracing>]
다음 테이블에서는 이 옵션에 적용할 수 있는 사용 가능한 스위치에 대해 설명합니다.
Switch | 설명 |
---|---|
<프로필> [-start< profilen>]... | 기본 제공 프로필 또는 사용자 정의 프로필의 경로를 지정합니다. 각 프로필을 다음과 같이 지정하여 단일 명령줄에서 최대 64개의 프로필을 지정할 수 있습니다. <profile> := [<filename.wprp>!]<프로필 이름>[.{light|verbose}] 각 프로필은 간략하거나 자세한 정보 표시 버전 또는 두 버전을 모두 정의할 수 있습니다. 두 옵션 모두 지정하지 않으면 프로필에 간략한 버전만 포함되지 않는 한 자세한 정보 표시 버전이 사용됩니다. |
-shutdown [<KSR>] | 다시 부팅할 때 세션 정보 및 녹음/녹화가 유지되도록 지정합니다. 종료 옵션은 파일 모드 추적에서만 작동하는 반면 KSR은 메모리 모드에서만 작동합니다. 다음 부팅 시 -stop 명령을 호출하여 추적을 병합합니다. |
-filemode | 기록이 파일 모드에서 수행되도록 지정합니다. (기본 모드는 메모리입니다.) 이 옵션을 사용하면 데이터가 제한 없는 파일에 기록되며 디스크를 채울 때까지 크기가 커질 수 있습니다. |
-recordtempto <temp 폴더 경로> | 기록이 저장되는 임시 폴더 경로를 지정합니다. |
-onoffscenario <OnOff 전환 유형> | 켜기/끄기 전환 유형 중 하나를 지정합니다. Boot, FastStartup, Shutdown, RebootCycle, Standby 또는 Hibernate입니다. |
추적 파일이 저장되는 -onoffresultspath <경로> | 추적 파일이 저장되는 경로를 지정합니다. |
시나리오에 대한 -onoffproblemdescription <설명> | 시나리오에 대한 설명을 지정합니다. |
-numiterations <OnOff 추적에 대한 반복 수> | OnOff 기록의 반복 횟수를 설정합니다. 기본적으로 기본 제공 또는 사용자 지정 프로필 파일의 설정은 기본적으로 사용됩니다. |
예시
wpr -start CPU (Starts verbose CPU profile in memory mode)
wpr -start CPU.light -filemode (Starts light CPU profile in file mode)
wpr -start filename.wprp!ProfileName.Verbose (Starts verbose ProfileName profile defined in filename.wprp)
중지
중지 옵션은 현재 기록을 중지하고 인수로 지정된 파일에 저장합니다.
구문
wpr -stop <file> <problem description> -[skipPdbGen] [-force] [-compress]
다음 테이블에서는 이 옵션에 적용할 수 있는 사용 가능한 인수에 대해 설명합니다.
인수 | 설명 |
---|---|
<file name> | WPR이 기록을 저장하는 ETL(이벤트 추적 로그) 파일을 지정합니다. 이 인수는 필수입니다. |
<problem description> | 문제 설명을 지정합니다. 이 인수는 선택 사항이지만 사용하는 것이 좋습니다. |
-skipPdbGen | .NET 모듈에 대해 ngen 및 포함된 pdbs의 동적 생성을 사용하지 않도록 설정합니다. 이 옵션은 중지 작업 시간을 줄일 수 있습니다. |
-force | 대상 파일 확장명이 .etl이 아닌 경우 경고를 사용하지 않도록 설정합니다. |
-compress | 출력 추적 파일을 압축합니다. |
Merge
Merge 옵션은 etl 파일을 지정된 파일에 병합합니다.
구문
wpr -merge <trace files ...> <merged file> -[skipPdbGen] [-compress] [-supresspii] [-mergeonly] [-injectonly]
다음 테이블에서는 이 옵션에 적용할 수 있는 사용 가능한 인수에 대해 설명합니다.
인수 | 설명 |
---|---|
<trace files ...> | 하나 이상의 병합되지 않은 ETL(이벤트 추적 로그) 파일을 지정합니다. 이 인수는 필수입니다. |
<merged file> | WPR이 ETL 파일을 병합하는 출력 파일을 지정합니다. |
-skipPdbGen | .NET 모듈에 대해 ngen 및 포함된 pdbs의 동적 생성을 사용하지 않도록 설정합니다. 이 옵션은 중지 작업 시간을 줄일 수 있습니다. |
-compress | 출력 추적 파일을 압축합니다. |
-supresspii | PII(개인 식별 가능) 정보를 표시하지 않습니다. |
-mergeonly | 컴퓨터별 정보 또는 이미지 ID 이벤트를 추가하지 않고 추적을 병합합니다. -injectonly와 함께 사용할 수 없습니다. |
-injectonly | 병합된 파일에서 원래 이벤트를 복사하지 않고 컴퓨터별 및/또는 이미지 ID 이벤트만 생성합니다. |
취소
취소 옵션은 기록된 데이터를 저장하지 않고 현재 기록을 취소합니다. 현재 활성화된 인스턴스가 없으면 취소 옵션이 오류를 반환합니다.
구문
wpr -cancel
이 옵션은 인수를 사용하지 않습니다.
상태
상태 옵션은 현재 WPR 기록에 대한 상태 정보를 표시합니다.
구문
wpr -status [profiles] [collectors [-details]]
현재 활성 상태인 기록이 없으면 WPR이 기록되지 않는다는 메시지가 표시됩니다. 기록이 현재 활성 상태이고 인수가 사용되지 않는 경우 다음 상태 정보가 표시됩니다.
WPR recording is in progress...
Time since start : 00:04:27
Dropped event : 0
Logging mode : Memory
-status 옵션과 함께 인수를 제공하는 경우 위에 나열된 정보가 해당 옵션과 관련된 데이터와 함께 표시됩니다. 다음 테이블에서는 이 옵션에 적용할 수 있는 사용 가능한 인수에 대해 설명합니다.
인수 | 설명 및 예제 출력 |
---|---|
profiles | 이 인수는 현재 WPR 기록에서 사용 중인 각 프로필을 나열합니다.
예제: 다음 프로필 집합을 사용하여 시스템 활동을 기록합니다. |
collectors | 수집기 정보를 나열합니다. 버퍼가 손실된 경우 해당 버퍼가 나열됩니다.
예제: 수집기를 적극적으로 기록합니다. |
details | 각 수집기에 대한 추가 정보를 나열합니다. |
Profiledetails
Profiledetails 옵션은 프로필 또는 프로필 집합에 대한 자세한 정보를 표시합니다. 여러 프로필을 지정하려면 다음 구문을 사용합니다. 여기서 <profilen>은 각 프로필의 이름을 나타냅니다.
구문
wpr -profiledetails <profile1>+<profile2>+...+<profilen> [-filemode] -onoffscenario <OnOff Transition Type>
다음 테이블에서는 이 옵션에 적용할 수 있는 사용 가능한 스위치에 대해 설명합니다.
Switch | 설명 |
---|---|
-filemode | 기록이 파일 모드에서 수행되었음을 지정합니다. (기본 모드는 메모리입니다.) |
-onoffscenario <OnOff 전환 유형> | 켜기/끄기 전환 유형 중 하나를 지정합니다. Boot, FastStartup, Shutdown, RebootCycle, Standby 또는 Hibernate입니다. |
ExportProfile
ExportProfile 옵션은 기본 제공 프로필을 지정된 파일로 내보냅니다. wpr -Profiles
명령을 사용하여 사용 가능한 기본 제공 프로필을 열거합니다. 여러 프로필을 지정하려면 다음 구문을 사용합니다. 여기서 <profilen>
은 각 프로필의 이름을 나타냅니다. 프로필의 명명 규칙은 wpr -start
에서 사용된 것과 정확히 동일합니다. 프로필은 <profile name>[.{light|verbose}]
로 지정됩니다.
구문
wpr -exportprofile <profile1>+<profile2>+...+<profilen> <ExportedFileName.wprp> [-filemode]
다음은 filemode verbose GeneralProfile 프로필을 GeneralProfileVerboseFile.wprp 파일로 내보내는 예제입니다.
예시
wpr -exportprofile GeneralProfile d:\profiles\GeneralProfileVerboseFile.wprp -filemode
공급자
Providers 옵션은 공급자에 대한 자세한 정보를 표시합니다. 공급자는 이벤트를 WPR(Windows Performance Recorder)에 노출하는 ETW(Windows용 이벤트 추적) 구성 요소를 참조합니다. 공급자에 대한 정보를 표시하려면 다음 구문을 사용합니다. 여기서 -providers는 모든 설치된/알려진 공급자 및 등록된 공급자를 참조합니다.
구문
wpr -providers
이 옵션은 인수를 사용하지 않습니다.
Boottrace
Boottrace 옵션은 주어진 프로필의 자동 로거/글로벌 로거 세션에 대한 레지스트리 항목을 구성합니다.
구문
wpr -boottrace {-addboot [<filename.wprp>!]<profile> [-addboot <profile> ...] [-filemode] [-recordtempto <temp folder path>] | -stopboot <recording filename> <Problem description> | -cancelboot}
다음 테이블에서는 이 옵션에 적용할 수 있는 사용 가능한 키워드에 대해 설명합니다.
인수 | 설명 |
---|---|
-boottrace | 다음 인수를 지정하여 자동 로거를 설정합니다. 현재 WPR에서 이 인수는 선택 사항입니다. |
-addboot | 주어진 프로필에 대한 자동 로거 레지스트리 항목을 설정합니다. wpr -addboot 명령은 wpr -start 명령과 동일한 옵션을 사용합니다. 이 옵션은 추적을 즉시 시작하지는 않습니다. 다시 부팅한 후 운영 체제에서 자동 로거가 시작됩니다. |
-stopboot | addboot에 의해 구성된 자동 로거를 제거하고 부팅 기록을 중지하고 모든 기록을 지정된 파일에 병합합니다. 이 옵션은 자동 로거 세션이 실행 중인 경우(즉, 다시 부팅 후)에만 추적을 저장합니다. 그렇지 않으면 이 옵션은 자동 로거 구성만 제거합니다. |
-cancelboot | addboot에 의해 구성된 자동 로거를 제거하고 WPR에서 시작된 부팅 기록을 취소합니다. |
CaptureStateOnDemand
CaptureStateOnDemand 옵션은 현재 기록에서 구성된 공급자의 상태를 캡처합니다. 세션이 실행되는 동안 프로필 파일 내에서 capturestateondemand에 대한 이벤트 공급자를 구성해야 합니다.
구문
wpr-capturestateondemand
다음은 EventProvider의 예제입니다.
<EventProvider Id="EventProvider_Microsoft-Windows-Win32k" Name="Microsoft-Windows-Win32k" NonPagedMemory="true" CaptureStateOnly="true">
<CaptureStateOnDemand Timeout="5">
<Keyword Value="0x0"/>
</CaptureStateOnDemand>
</EventProvider>
마커
Marker 옵션은 현재 시스템 로깅 세션에서 주어진 텍스트로 이벤트 마커를 실행합니다.
구문
wpr -marker <text> [-flush]
인수 | 설명 |
---|---|
-플러시 | 작업 집합을 플러시합니다. -MarkerFlush에 해당합니다. |
MarkerFlush(사용되지 않음)
MarkerFlush 옵션은 주어진 텍스트로 이벤트 마커를 실행하고 작업 세트를 플러시합니다. 이 명령은 현재 WPR에서 사용되지 않습니다.
구문
wpr -markerflush <text>
플러시
Flush 옵션은 WPR을 통해 시작된 파일에 대한 로깅 세션을 플러시합니다.
구문
wpr -flush
이 옵션은 인수를 사용하지 않습니다.
HeapTracingConfig
HeapTracingConfig 옵션은 특정 프로세스 또는 저장소 애플리케이션에 대한 힙 추적을 사용하거나 사용하지 않도록 설정합니다.
Syntax
wpr -HeapTracingConfig <process name> [<package full name> <package relative app ID>] [{enable|disable}]
참고 항목
- {enable|disable} 매개 변수를 생략하면 프로세스 또는 앱에 대한 현재 힙 추적 구성이 표시됩니다. 예:
wpr -HeapTracingConfig Heaptest.exe enable
- 이 명령은 추적을 즉시 시작하지 않으며 힙 추적을 수행하기 전에 실행해야 합니다. 자세한 내용은 힙 분석을 위한 기록을 참조하세요.
- 추적이 완료된 후 프로세스의 성능에 영향을 미칠 수 있으므로 항상 프로세스에 대해 HeapTracingConfig를 사용하지 않도록 설정합니다.
Disablepagingexecutive
Disablepagingexecutive 옵션은 드라이버와 커널 모드 시스템 코드를 디스크로 페이징할 수 있는지 여부를 지정합니다. 이 옵션을 켜기로 설정하면 페이징이 방지됩니다. 이 옵션은 레지스트리에서 DisablePagingExecutive 값을 설정합니다.
Syntax
wpr -disablepagingexecutive {on | off}
참고 항목
Windows 7을 실행하는 64비트 시스템에서 이벤트 스택을 올바르게 캡처하려면 disablepagingexecutive를 켜기로 설정하고 성능 기록을 시작하기 전에 시스템을 다시 부팅해야 합니다. Windows 7을 실행하는 32비트 시스템과 Windows 8 이상을 실행하는 모든 시스템의 경우 disablepagingexecutive를 켜기로 설정하지 않고도 성능 기록을 작동할 수 있습니다.
Log
로그 옵션은 이벤트 로그에 디버그 로깅을 추가하고 구성합니다.
구문
wpr -log {enabled | disabled | remove}
다음 테이블에서는 이 옵션에 적용할 수 있는 사용 가능한 키워드에 대해 설명합니다.
키워드 | 설명 |
---|---|
사용 | 이벤트 로그에 대한 디버그 로깅을 사용하도록 설정합니다. |
disabled | 이벤트 로그에 대한 디버그 로깅을 사용하지 않도록 설정합니다. |
remove | 시스템에서 WPR 디버그 로깅 공급자 매니페스트를 제거합니다. |
Purgecache
Purgecache 옵션은 관리형 기호 캐시를 제거합니다.
구문
wpr -purgecache
이 옵션은 인수를 사용하지 않습니다.
도움말
명령 프롬프트 창에 온라인 도움말을 표시하려면 이 옵션을 사용합니다.
구문
wpr -help [start | stop | status | profiles | providers | tracing | boottrace | heap | hardwarecounter | advanced]
다음 테이블에서는 이 옵션에 적용할 수 있는 사용 가능한 키워드에 대해 설명합니다.
키워드 | 설명 |
---|---|
No keyword | 옵션 목록과 간단한 설명을 표시합니다. 특정 옵션에 대한 추가 도움말을 보려면 키워드를 사용합니다. 예: wpr -help start |
start | –start 명령줄 인수를 설명합니다. 자세한 내용은 시작을 참조하세요. |
stop | -stop, -merge 및 -cancel 명령줄 인수를 설명합니다. |
status | -status 명령줄 인수를 설명합니다. 자세한 내용은 상태를 참조하세요. |
profiles | -profiles, -profiledetails 및 -exportprofile 명령줄 인수를 설명합니다. |
providers | -providers 명령줄 인수에 대해 설명합니다. 자세한 내용은 공급자를 참조하세요. |
tracing | –marker, -flush 및 -capturestateondemand 명령줄 인수를 설명합니다. |
boottrace | -addboot, -stopboot 및 -cancelboot 명령줄 인수를 설명합니다. |
heap | -heaptracingconfig, -snapshotconfig, -enableperiodicsnapshot, -disableperiodicsnapshot 및 -singlesnapshot 명령줄 인수를 설명합니다. |
hardwarecounter | -pmcsources, -pmcsessions, -setprofint, -profint 및 -resetprofint 명령줄 인수를 설명합니다. |
advanced | -purgecache, -log, -disablepagingexecutive, -instancename 및 -container 명령줄 인수를 설명합니다. |
SnapshotConfig
SnapshotConfig 옵션은 특정 프로세스 또는 프로세스에 대해 스냅샷 옵션>\의 <일회성 또는 정기적인 스냅샷을 캡처하는 기능을 사용하거나 사용하지 않도록 설정합니다. 현재 힙의 스냅샷을 만들 수 있습니다.
구문
wpr -SnapshotConfig <snapshot option> {-name <process name> | -pid <pid 1> [pid 2] ...} [{enable|disable}]
{enable|disable}
매개 변수가 생략되면 프로세스의 현재 스냅샷 구성(즉, -name 옵션만)이 표시됩니다.
이 예제에서는 이미지 이름과 함께 snapshotconfig 명령을 사용합니다.
wpr -snapshotconfig heap -name Win32Project1.exe //query snapshot config
wpr -snapshotconfig heap -name Win32Project1.exe enable //enable snapshot config
wpr -snapshotconfig heap -name Win32Project1.exe disable //disable snapshot config
이 예제에서는 PID와 함께 snapshotconfig 명령을 사용합니다.
wpr -snapshotconfig heap -pid 8048 enable //enable snapshot config
참고 항목
프로세스와 OS 아키텍처가 일치하지 않는 경우(예: 64비트 운영 체제의 win32 앱) 이미지 이름 옵션을 사용합니다.
다음 테이블에서는 이 옵션에 적용할 수 있는 사용 가능한 스위치에 대해 설명합니다.
Switch | 설명 |
---|---|
<snapshot option> | 스냅샷 옵션 유형 중 하나를 지정합니다. 현재는 Heap만 사용할 수 있습니다. |
-name | 프로세스의 이름을 지정합니다. 이 스위치는 -Pid 스위치와 함께 사용할 수 없습니다. 이 스위치를 사용하여 스냅샷을 사용하도록 설정하면 지정된 프로세스 이름의 모든 새 인스턴스에 구성이 적용됩니다. 테스트가 완료되면 사용하지 않도록 설정해야 합니다. |
-pid | 프로세스 ID를 지정합니다. 이 스위치는 -name 스위치와 함께 사용할 수 없습니다. 이 스위치를 사용하여 스냅샷을 사용하도록 설정하면 구성이 프로세스의 수명 동안 즉시 적용됩니다. |
SingleSnapshot
SingleSnapshot 옵션은 지정된 프로세스 ID에 대한 스냅샷 옵션의 <주문형 스냅샷을> 트리거합니다.
Syntax
wpr -SnapshotConfig <snapshot option> <pid 1> [pid 2] ... [up to pid 8]
참고 항목
SingleSnapshot을 호출하기 전에 프로세스 ID(또는 이름)에 대해 스냅샷 기능을 사용하도록 설정해야 합니다.
예: wpr -singlesnapshot heap <pid for foo.exe>
자세한 내용은 SnapshotConfig 명령을 참조하세요.
다음 테이블에서는 이 옵션에 적용할 수 있는 사용 가능한 스위치에 대해 설명합니다.
Switch | 설명 |
---|---|
<snapshot option> | 스냅샷 옵션 유형 중 하나를 지정합니다. |
<pid> | 프로세스 ID를 지정합니다. |
EnablePeriodicSnapshot
EnablePeriodicSnapshot 옵션은 지정된 간격 및 지정된 프로세스 ID에서 주기적인 스냅샷을 트리거합니다.
Syntax
wpr -enableperiodicsnapshot <snapshot option> <interval (in seconds)> <pid 1> [pid 2] ... [up to pid 8]
참고 항목
SingleSnapshot을 호출하기 전에 프로세스 ID(또는 이름)에 대해 스냅샷 기능을 사용하도록 설정해야 합니다.
예: wpr -enableperiodicsnapshot heap 60 <pid for foo.exe>
자세한 내용은 SnapshotConfig 명령을 참조하세요.
다음 테이블에서는 이 옵션에 적용할 수 있는 사용 가능한 스위치에 대해 설명합니다.
Switch | 설명 |
---|---|
<snapshot option> | 스냅샷 옵션 유형 중 하나를 지정합니다. |
<interval> | 간격을 초 단위로 지정합니다. 유효한 최소 간격은 5입니다. |
<pid> | 프로세스 ID를 지정합니다. |
DisablePeriodicSnapshot
DisablePeriodicSnapshot 옵션은 enableperiodicsnapshot 옵션으로 지정된 모든 프로세스에 대한 주기적인 스냅샷을 사용하지 않도록 설정합니다.
구문
wpr -disableperiodicsnapshot <snapshot option>
예시
wpr -disableperiodicsnapshot heap
다음 테이블에서는 이 옵션에 적용할 수 있는 사용 가능한 스위치에 대해 설명합니다.
Switch | 설명 |
---|---|
<snapshot option> | 스냅샷 옵션 유형 중 하나를 지정합니다. |
PMCSources
PMCSources 옵션은 시스템의 PMU(성능 모니터링 단위) 이벤트 목록과 카운터 오버플로에 대한 기본 간격 값을 쿼리합니다. 간격은 이벤트 수입니다.
Syntax
wpr -pmcsources
참고 항목
성능 모니터 유닛 이벤트는 CPU 성능을 측정하고 워크로드 CPU 특성화를 이해하는 데 사용됩니다. Arm/Intel 참조 문서에 있는 PMU 이벤트의 하위 집합만 Windows HAL에서 구현됩니다. Intel CPU 디바이스에서 이 옵션의 예제 출력은 다음과 같습니다.
C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit>wpr -pmcsources
Id Name Interval Min Max
--------------------------------------------------------------
0 Timer 10000 1221 1000000
2 TotalIssues 698400 4096 2147483647
6 BranchInstructions 65536 4096 2147483647
10 CacheMisses 65536 4096 2147483647
11 BranchMispredictions 65536 4096 2147483647
19 TotalCycles 65536 4096 2147483647
25 UnhaltedCoreCycles 65536 4096 2147483647
26 InstructionRetired 65536 4096 2147483647
27 UnhaltedReferenceCycles 65536 4096 2147483647
28 LLCReference 65536 4096 2147483647
29 LLCMisses 65536 4096 2147483647
30 BranchInstructionRetired 65536 4096 2147483647
31 BranchMispredictsRetired 65536 4096 2147483647
32 LbrInserts 65536 4096 2147483647
PMCSessions
PMCSessions 옵션은 하드웨어 카운터를 사용하여 세션 목록을 쿼리합니다. 이 옵션은 Windows 11 이상에서만 사용할 수 있습니다.
구문
wpr -pmcsessions
ProfInt
ProfInt 옵션은 “프로파일링” 간격을 쿼리합니다.
구문
wpr -profint
예시
C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit>wpr -profint
Current Profile Interval = 10000 [1.0000ms]
SetProfInt
SetProfInt 옵션은 PMU 이벤트에 대한 샘플링 프로필 간격을 설정합니다. PMU 이벤트 이름을 생략하면 기본값은 타이머입니다.
구문
wpr -setprofint [PMU event name] 1221...10000000
예시
C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit>wpr -setprofint 100000
New Profile Interval = 100000 [10.0000ms]
C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit>wpr -setprofint TotalIssues 1000000
New Profile Interval = 100000 [Counter: TotalIssues]
ResetProfInt
ResetProfInt 옵션은 프로필 간격을 기본값으로 다시 설정합니다.
구문
wpr -resetprofint [Profile Source Name]
[Profile Source Name]이 제공되지 않으면 모든 프로필 원본이 기본값으로 다시 설정됩니다.
Instancename
Instancename 옵션은 추적 인스턴스를 고유하게 식별하는 이름을 지정합니다.
이 옵션은 로깅 세션을 조작하고 사용자가 제공한 로깅 세션 이름을 할당하는 모든 명령에 적용할 수 있습니다. 이 옵션을 생략하면 WPR에서 기본 세션 이름을 설정합니다.
Syntax
wpr –{option <arguments>} -instancename <text>
참고 항목
-instancename은 마지막 매개 변수여야 합니다. 로깅 세션이 이 옵션으로 시작된 경우 모든 후속 명령은 동일한 instancename 옵션을 사용해야 합니다. 예시:
C:\wpt>wpr -start cpu -instancename CpuSession
C:\wpt>wpr -status -instancename CpuSession
WPR recording is in progress...
...
Time since start : 00:00:05
Dropped event : 0
Logging mode : Memory
C:\wpt>wpr -stop cpu.etl -> omitting instancename option would not find CpuSession
There are no trace profiles running.
Error code: 0xc5583000
C:\wpt>wpr -stop cpu.etl -instancename CpuSession -> trace will be saved
설명
WPR은 시스템에서 관리형 애플리케이션이 실행 중일 때 캡처된 추적을 저장할 때마다 추적 파일 옆에 관리형 기호를 저장합니다. 이 기능을 사용하면 관리형 애플리케이션의 성능 분석을 수행할 수 있습니다.
관리형 기호 생성은 리소스와 시간이 많이 소요되는 작업입니다. WPR은 관리형 기호 생성을 신속하게 하기 위해 관리형 기호 캐시를 자동으로 만듭니다. WPR에 관리형 기호가 필요한 경우 먼저 이 캐시를 확인하고 다시 생성하는 대신 사용 가능하고 적절한 기호를 사용합니다.
기본 관리형 기호 캐시 위치는 C:\ProgramData\WindowsPerformanceRecorder\NGenPdbs_Cache입니다.