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
- 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
- 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.
- 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>
- Salve o rastreamento usando wprui ou wpr.
wpr -stop heapsnapshot.etl
- 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).