Compartilhar via


Gravando um instantâneo de heap

O WPR (Windows Performance Recorder) permite instantâneo de heap para processos específicos no sistema.

Essa instantâneo de heap é diferente da gravação de análise de heap, pois é necessária instantâneo exibição do heap. Por exemplo, um Instantâneo de Heap salva todas as informações de alocação de heap no banco de dados. Quando o comando SingleSnapshot é executado, ele exporta as informações de alocação para o buffer de rastreamento. O instantâneo contém informações de alocação, incluindo todas as pilhas criadas após a habilitação do instantâneo.

Para capturar um rastreamento de instantâneo de heap

  1. Habilitar o rastreamento de instantâneo de heap Há duas maneiras de habilitar um rastreamento de instantâneo de heap, por nome do processo e por ID do processo.

O exemplo a seguir usa o nome do processo:

 wpr -snapshotconfig heap -name heaptest.exe           //query snapshot config
 wpr -snapshotconfig heap -name heaptest.exe enable    //enable snapshot config

O exemplo a seguir usa a ID do processo ou o PID:

wpr -snapshotconfig heap -pid 8048 enable                //enable snapshot config
  1. Iniciar o rastreamento usando wpr ou wprui

usando wpr :

wpr -start heapsnapshot -filemode                          

Se a opção -name tiver sido usada para habilitar o heap instantâneo, você precisará iniciar o processo depois que a configuração estiver habilitada.

  1. Pegue o heap instantâneo

Sempre que um instantâneo é disparado, o banco de dados da pilha de alocação é exportado para os buffers de rastreamento. Um único instantâneo (pode ser usado várias vezes), por exemplo:

 wpr -singlesnapshot heap <pid for foo.exe>

instantâneo periódicas:

 wpr -enableperiodicsnapshot heap <frequency in seconds> <pid for foo.exe>
  1. Salve o rastreamento usando wprui ou wpr.
wpr -stop heapsnapshot.etl
  1. Desabilitar o instantâneo de heap
    Você pode desabilitar o heap usando o PID ou o Nome. Aqui estão exemplos de ambos.

Usando o Nome:

wpr -snapshotconfig heap -name Win32Project1.exe disable

Usando o PID:

 wpr -snapshotconfig heap -pid %_PID% disable

Nota: Se a opção -name for usada para habilitar o heap instantâneo, ela definirá o registro IFEO internamente e será aplicada a todas as novas instâncias do processo. Desabilite-o usando a opção SnapshotConfig quando o teste for concluído para evitar coleta de heap desnecessária. Além disso, se a arquitetura de cpu do processo e do sistema operacional não corresponder ( por exemplo, executando o aplicativo win32 no sistema operacional de 64 bits), use a opção de nome (IFEO).