다음을 통해 공유


힙 스냅샷 기록

WPR(Windows Performance Recorder)은 시스템의 특정 프로세스에 대한 힙 스냅샷을 사용하도록 설정합니다.

힙 스냅샷은 힙의 스냅샷 보기를 가져오므로 힙 분석 기록과 다릅니다. 예를 들어 힙 스냅샷은 데이터베이스의 모든 힙 할당 정보를 저장합니다. SingleSnapshot 명령이 실행되면 할당 정보를 추적 버퍼로 내보냅니다. 스냅샷에는 스냅샷을 사용하도록 설정한 후 생성된 모든 스택이 포함된 할당 정보가 포함됩니다.

힙 스냅샷 추적을 캡처하려면

  1. 힙 스냅샷 추적을 사용하도록 설정합니다. 힙 스냅샷 추적을 사용하도록 설정하는 두 가지 방법에는 프로세스 이름별 및 프로세스 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
  1. wpr 또는 wprui를 사용하여 추적 시작

wpr 사용:

wpr -start heapsnapshot -filemode                          

-name 옵션을 사용하여 힙 스냅샷을 사용하도록 설정한 경우 구성을 사용하도록 설정한 후 프로세스를 시작해야 합니다.

  1. 힙 스냅샷 만들기

스냅샷이 트리거될 때마다 할당 스택 데이터베이스가 추적 버퍼로 내보내집니다. 단일 스냅샷(여러 번 사용할 수 있음)은 다음과 같습니다.

 wpr -singlesnapshot heap <pid for foo.exe>

주기적 스냅샷:

 wpr -enableperiodicsnapshot heap <frequency in seconds> <pid for foo.exe>
  1. wprui 또는 wpr을 사용하여 추적을 저장합니다.
wpr -stop heapsnapshot.etl
  1. 힙 스냅샷을 사용하지 않도록 설정
    PID 또는 이름을 사용하여 힙을 사용하지 않도록 설정할 수 있습니다. 다음은 두 가지에 대한 예입니다.

이름 사용:

wpr -snapshotconfig heap -name Win32Project1.exe disable

PID 사용:

 wpr -snapshotconfig heap -pid %_PID% disable

참고: -name 옵션을 사용하여 힙 스냅샷을 사용하도록 설정하는 경우 내부적으로 IFEO 레지스트리를 설정하고 프로세스의 모든 새 인스턴스에 적용합니다. 불필요한 힙 수집을 방지하기 위해 테스트가 완료되면 SnapshotConfig 옵션을 사용하여 이를 사용하지 않도록 설정합니다. 또한 프로세스 및 OS의 CPU 아키텍처가 일치하지 않는 경우(예: 64비트 OS에서 win32 앱 실행) 이름 옵션(IFEO)을 사용합니다.