Como: Anexar o Profiler para um serviço nativo para coletar dados de simultaneidade, usando a linha de comando

Este tópico descreve como usar o Visual Studio Ferramentas de linha de comando de ferramentas de criação de perfil para anexar o profiler para um serviço nativo de (C/C++) e coletar dados de simultaneidade de thread e processo usando o método de amostragem.

ObservaçãoObservação

Ferramentas de linha de comando das ferramentas de criação de perfil estão localizadas na subpasta \Team Tools\Performance ferramentas da Visual Studio diretório de instalação. Em computadores de 64 bits, as versões de 64 bits e de 32 bits das ferramentas estão disponíveis. Para usar o profiler em um prompt de comando, você deve adicionar o caminho de ferramentas para a variável de ambiente PATH do o Prompt de comando janela ou para o próprio comando. Para obter mais informações, consulte Especificando o caminho para as ferramentas de linha de comando de criação de perfil.

Enquanto o profiler é anexado ao serviço, você pode pausar e reiniciar a coleta de dados. Para finalizar uma sessão de criação de perfil, o Profiler não deve ser anexado ao serviço e o criador de perfil deve ser desligado explicitamente.

Anexar o Profiler

Para anexar o profiler para um serviço nativo, você usar o VSPerfCmd /start e /attach Opções para inicializar o profiler e anexá-lo para o aplicativo de destino. Você pode especificar /start e /attach e suas respectivas opções em uma única linha de comando. Você também pode adicionar o /globaloff opção para interromper a coleta de dados no início do aplicativo de destino. Você usar /globalon para começar a coletar dados.

Para anexar o Profiler para um serviço nativo

  1. Se o serviço não estiver sendo executado, inicie o serviço.

  2. Inicie o profiler, digitando o seguinte no prompt de comando:

    VSPerfCmd /start:concurrency[,{ResourceOnly|ThreadOnly}] **/output:**OutputFile [Options]

    • O /start opção inicializa o profiler.

      A tabela a seguir descreve o /start parâmetros que podem ser usados para especificar os dados de simultaneidade para coletar.

      /start:concurrency

      Permite coletar dados de execução do thread e de contenção de recursos.

      /start:concurrency,resourceonly

      Habilita a coleta de dados somente de contenção de recursos.

      /start:concurrency,threadonly

      Habilita a coleta de dados de execução de thread único.

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

    Você pode usar qualquer opção na tabela a seguir com o /start opção.

    ObservaçãoObservação

    A maioria dos serviços exigem o /user e /crosssession opção.

    Opção

    Descrição

    /user:Domain\UserName

    Especifica o domínio opcional e nome de usuário da conta para ter acesso ao profiler.

    /crosssession

    Permite criação de perfil de processos em outras sessões de logon.

    /wincounter:WinCounterPath

    Especifica um contador de desempenho do Windows a serem coletados durante perfilação.

    /automark:Interval

    Use com /wincounter somente. Especifica o número de milissegundos entre eventos de coleção de contadores de desempenho do Windows. O valor padrão é 500.

    /Events:Config

    Especifica um evento de rastreamento de eventos para Windows (ETW) a serem coletados durante perfilação. Eventos ETW são coletados em um arquivo separado (. ETL).

  3. Anexe o profiler para o serviço digitando o seguinte comando em um prompt de comando:

    **VSPerfCmd /attach:**PID

    PIDEspecifica o ID do processo ou o nome do processo do aplicativo de destino. Você pode exibir as identificações de todos os processos em execução de processos no Gerenciador de tarefas do Windows.

Controlar a coleta de dados

Durante a execução do aplicativo de destino, você pode controlar a coleta de dados por iniciar e parar a gravação de dados para o arquivo com as opções de VSPerfCmd. Por controlar a coleta de dados, você pode coletar dados para uma parte específica da execução do programa, como, por exemplo, o início ou o desligamento do aplicativo.

Para iniciar e interromper a coleta de dados

  • Os pares de opções na tabela a seguir iniciar e interromper a coleta de dados. Especifica cada opção em uma linha de comando separada. Você pode ativar a coleta de dados de logon e logoff várias vezes.

    Opção

    Descrição

    /globaloff de /GLOBALON

    Inicia (/globalon) ou pára (/globaloff) a coleta de dados para todos os processos.

    /PROCESSON:PID /processoff:PID

    Inicia (/processon) ou pára (/processoff) para o processo de coleta de dados que a identificação do processo (PID) especifica.

    / conexão:{PID|ProcName} /detach[:{PID|ProcName}]

    /attachInicia a coletar dados para o processo que a identificação do processo (PID) ou o nome do processo (ProcName) especifica. /detachpára a coleta de dados para o processo especificado ou para todos os processos se nenhum processo for especificado.

  • Você também pode usar o VSPerfCmd.exe dd255359(v=vs.100).mdmarca/ a opção para inserir uma marca de criação de perfil para o arquivo de dados. O /mark comando adiciona um identificador, um carimbo de hora e uma seqüência de caracteres de um texto opcional definido pelo usuário. Marcas podem ser usadas para filtrar os dados em relatórios do profiler e exibições de dados.

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

Para finalizar uma sessão de criação de perfil, o profiler deve não ser coletando dados. Você pode interromper a coleta de dados em um serviço nativo que está sendo perfilado com o método de simultaneidade, interrompendo o serviço ou chamando o VSPerfCmd /detach opção. Você então chama o VSPerfCmd /shutdown opção para desativar o profiler e feche o arquivo de dados criação de perfil.

Para finalizar uma sessão de criação de perfil

  1. Desanexe o criador de perfil do aplicativo de destino, interrompendo o serviço ou digitando o seguinte comando em um prompt de comando:

    TipoVSPerfCmd /detach

  2. Desligar o profiler digitando o seguinte comando em um prompt de comando:

    VSPerfCmd /Shutdown