힙 스냅샷 기록
WPR(Windows Performance Recorder)은 시스템의 특정 프로세스에 대한 힙 스냅샷을 사용하도록 설정합니다.
힙 스냅샷은 힙의 스냅샷 보기를 가져오므로 힙 분석 기록과 다릅니다. 예를 들어 힙 스냅샷은 데이터베이스의 모든 힙 할당 정보를 저장합니다. SingleSnapshot 명령이 실행되면 할당 정보를 추적 버퍼로 내보냅니다. 스냅샷에는 스냅샷을 사용하도록 설정한 후 생성된 모든 스택이 포함된 할당 정보가 포함됩니다.
힙 스냅샷 추적을 캡처하려면
- 힙 스냅샷 추적을 사용하도록 설정합니다. 힙 스냅샷 추적을 사용하도록 설정하는 두 가지 방법에는 프로세스 이름별 및 프로세스 ID별의 두 가지 방법이 있습니다.
다음 예제에서는 프로세스 이름을 사용합니다.
wpr -snapshotconfig heap -name heaptest.exe //query snapshot config
wpr -snapshotconfig heap -name heaptest.exe enable //enable snapshot config
다음 예제에서는 프로세스 ID 또는 PID를 사용합니다.
wpr -snapshotconfig heap -pid 8048 enable //enable snapshot config
- wpr 또는 wprui를 사용하여 추적 시작
wpr 사용:
wpr -start heapsnapshot -filemode
-name 옵션을 사용하여 힙 스냅샷을 사용하도록 설정한 경우 구성을 사용하도록 설정한 후 프로세스를 시작해야 합니다.
- 힙 스냅샷 만들기
스냅샷이 트리거될 때마다 할당 스택 데이터베이스가 추적 버퍼로 내보내집니다. 단일 스냅샷(여러 번 사용할 수 있음)은 다음과 같습니다.
wpr -singlesnapshot heap <pid for foo.exe>
주기적 스냅샷:
wpr -enableperiodicsnapshot heap <frequency in seconds> <pid for foo.exe>
- wprui 또는 wpr을 사용하여 추적을 저장합니다.
wpr -stop heapsnapshot.etl
- 힙 스냅샷을 사용하지 않도록 설정
PID 또는 이름을 사용하여 힙을 사용하지 않도록 설정할 수 있습니다. 다음은 두 가지에 대한 예입니다.
이름 사용:
wpr -snapshotconfig heap -name Win32Project1.exe disable
PID 사용:
wpr -snapshotconfig heap -pid %_PID% disable
참고: -name 옵션을 사용하여 힙 스냅샷을 사용하도록 설정하는 경우 내부적으로 IFEO 레지스트리를 설정하고 프로세스의 모든 새 인스턴스에 적용합니다. 불필요한 힙 수집을 방지하기 위해 테스트가 완료되면 SnapshotConfig 옵션을 사용하여 이를 사용하지 않도록 설정합니다. 또한 프로세스 및 OS의 CPU 아키텍처가 일치하지 않는 경우(예: 64비트 OS에서 win32 앱 실행) 이름 옵션(IFEO)을 사용합니다.