Share via


Instrumentar um componente autônomo nativo e coletar dados de tempo com o criador de perfil usando a linha de comando

Esse tópico descreve como usar as ferramentas de criação de perfil da linha de comando do Visual Studio para instrumentar um componente nativo, como um arquivo.exe ou .dll do C++, e coletar dados de tempo detalhados.

Para coletar dados de tempo detalhados de um componente usando o método de instrumentação, use a ferramenta VSInstr.exe para gerar uma versão instrumentada do componente. Em seguida, inicie o criador de perfil. Quando o componente instrumentado é executado, os dados de tempo são automaticamente coletados para um arquivo de dados. Você pode pausar e retomar a coleta de dados durante a sessão de criação de perfil.

O caminho para as ferramentas de criação de perfil é Microsoft Visual Studio\version\Enterprise\Team Tools\DiagnosticsHub\Collector.

Observação

Para usar ferramentas de linha de comando do criador de perfil, você precisa adicionar o caminho das ferramentas à variável de ambiente PATH da janela de Prompt de Comando ou adicioná-lo ao próprio comando.

Para terminar uma sessão de criação de perfil, feche o aplicativo de destino e feche explicitamente o criador de perfil.

Iniciar a sessão de criação de perfil

Para iniciar a criação de perfil usando o método de instrumentação:

  1. Abra uma janela de Prompt de Comando.

  2. Use a ferramenta VSInstr para gerar uma versão instrumentada do aplicativo de destino.

  3. Inicie o criador de perfil. Tipo:

    VSPerfCmd /start:trace /output:OutputFile [Options]

    • A opção /start:trace inicializa o criador de perfil.

    • A opção /output:OutputFile é necessária com /start. OutputFile especifica o nome e o local do arquivo de dados de criação de perfil (.vsp).

      É possível usar uma ou várias opções a seguir com a opção /start:trace.

    Opção Descrição
    /user:[Domain\]UserName Especifica o domínio e o nome de usuário da conta que possui o processo analisado. Esta opção será necessária apenas se o processo estiver sendo executado como um usuário diferente do usuário conectado. O proprietário do processo é listado na coluna Nome de Usuário na guia Processos do Gerenciador de Tarefas do Windows.
    /crosssession Habilita a criação de perfil de processos em outras sessões. Esta opção será necessária se o aplicativo estiver em execução em uma sessão diferente. O identificador da sessão é listado na coluna ID da Sessão na guia Processos do Gerente de Tarefas do Windows. /CS pode ser especificado como uma abreviação de /crosssession.
    /globaloff Inicia o criador de perfil com a coleta de dados em pausa. Use /globalon para retomar a criação de perfil.
    /counter:Config Coleta informações do contador de desempenho do processador que é especificado em Config. As informações do contador são adicionadas aos dados que são coletados em cada evento de criação de perfil.
    /wincounter:WinCounterPath Especifica um contador de desempenho do Windows que deve ser coletado durante a criação de perfil.
    /automark:Interval Use somente com /wincounter. Especifica o número de milissegundos entre eventos de coleta do contador de desempenho do Windows. O padrão é 500 ms.
    /events:Config Especifica um evento de ETW (Rastreamento de Eventos para Windows) a ser coletado durante a criação de perfil. Os eventos do ETW são coletados em um arquivo separado (.etl).
  4. Inicie o aplicativo de destino normalmente.

Controlar a coleta de dados

Quando o aplicativo de destino estiver em execução, você pode controlar a coleta de dados iniciando e interrompendo a gravação de dados no arquivo usando as opções de VSPerfCmd.exe. Controlar a coleta de dados permite coletar dados de uma parte específica da execução do programa, como a inicialização ou o desligamento do aplicativo.

Para iniciar e interromper a coleta de dados:

  • Os pares de opções a seguir iniciam e interrompem a coleta de dados. Especifique cada opção em uma linha de comando separada. É possível ativar e desativar a coleta de dados várias vezes.

    Opção Descrição
    /globalon /globaloff Inicia (/globalon) ou interrompe (/globaloff) a coleta de dados para todos os processos.
    /processon:PID/processoff:PID Inicia (/processon) ou interrompe (/processoff) a coleta de dados para o processo especificado pela ID de processo (PID).
    /threadon:TID [/threadoff]../profiling/threadon-and-threadoff.md) :TID Inicia (/threadon) ou interrompe (/threadoff) a coleta de dados para o thread especificado pela ID do thread (TID).

Encerrar a sessão de criação de perfil

Para encerrar uma sessão de criação de perfil, feche o aplicativo que está executando o componente instrumentado e, em seguida, chame a opção VSPerfCmd/shutdown para desligar o criador de perfil e fechar o arquivo de dados de criação de perfil.

Para encerrar uma sessão de criação de perfil:

  1. Feche o aplicativo de destino.

  2. Desligue o criador de perfil. Tipo:

    VSPerfCmd /shutdown