Compartilhar via


Como instrumentar um serviço do .NET Framework e coletar dados de memória usando a linha de comando do criador de perfil

Este tópico descreve como usar as ferramentas de linha de comando das ferramentas de criação de perfil do Visual Studio para instrumentar um serviço do .NET Framework e para coletar dados do uso de memória.Você pode coletar dados de alocação de memória ou coletar a alocação de memória e os dados de tempo de vida do objeto.

ObservaçãoObservação

Os recursos avançados de segurança no Windows 8 e Windows Server 2012 necessitaram de alterações significativas na forma que o profiler do Visual Studio coleta dados dessas plataformas.Os aplicativos da Windows Store também requerem novas técnicas de coleção.Consulte Criando perfil de aplicativos do Windows 8 e do Windows Server 2012.

ObservaçãoObservação

Você não pode analisar um serviço com o método de instrumentação se o serviço não puder ser reiniciado após a inicialização do computador, tal serviço é iniciado quando o sistema operacional é inicializado.

Ferramentas de linha de comando das Ferramentas de Criação de Perfil estão localizadas no subdiretório \Team Tools\Performance Tools do diretório de instalação Visual Studio.Nos computadores de 64 bits, ambas as versões de 64 bits e de 32 bits das ferramentas está disponível.Para usar as ferramentas de linha de comando do criador de perfis, você deve adicionar o caminho das ferramentas para a variável de ambiente PATH da janela prompt de comando ou adicioná-lo ao próprio comando.Para obter mais informações, consulte Especificando o caminho para ferramentas de linha de comando de ferramentas de criação de perfil.

Iniciando a sessão de análise

Para coletar dados de desempenho de um serviço de .NET Framework, use a ferramenta VSPerfCLREnv.cmd para inicializar as variáveis de ambiente apropriadas e a ferramenta VSInstr.exe para criar uma cópia instrumentada do arquivo binário de serviço.

O computador que hospeda o serviço deve ser reiniciado para configurá-lo para criação de perfil.Você também deve iniciar manualmente o serviço do Gerenciador de Controle de Serviços.Em seguida, você inicia o criador de perfis e inicia o serviço .NET Framework.

Quando o componente instrumentado é executado, os dados da memória são coletados automaticamente em um arquivo de dados.Você pode pausar e retomar a coleção de dados durante a sessão de criação de perfis.

Para finalizar a uma sessão, feche o serviço e encerre o criador de perfis explicitamente.Na maioria dos casos, recomendamos limpar as variáveis de ambiente ao final de uma sessão.

Para iniciar a criação do perfil de um serviço do .NET Framework

  1. Abra uma janela de prompt de comando.

  2. Use a ferramenta VSInstr para gerar uma versão provida de binário de serviço.

  3. Use o Gerenciador de Controle de Serviços para substituir o binário original pela versão provida.Verifique se o Tipo de Inicialização do serviço está definido como Manual.

  4. Inicialize as variáveis do ambiente do perfil.Tipo:

    VSPerfClrEnv {/globaltracegc | /globaltracegclife}

    • /globaltracegc e /globaltracegclife permitem a coleção de alocação de memória e objetos de dados do tempo de vida.

      Opção

      Descrição

      /globaltracegc

      Só coleta dados de alocação de memória.

      /globaltracegclife

      Coleta dados de tempo de vida do objeto e alocação de memória.

  5. Reinicie o computador.

  6. Abra uma janela de prompt de comando.

  7. Inicie o criador de perfis.Tipo:

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

    • A opção /start: contention inicializa o criador de perfis.

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

    Você pode usar qualquer uma das seguintes opções com a opção /start:sample.

    ObservaçãoObservação

    As opções de /user e de /crosssession geralmente são necessárias para serviços.

    Opção

    Descrição

    /user:[Domain\]UserName

    Especifica o domínio e o nome do usuário da conta que possui o processo de trabalho do ASP.NET.Essa opção é necessária se o processo estiver sendo executado como um usuário diferente do usuário conectado.O proprietário do processo é listado na coluna de nome de usuário na guia de processos do gerenciador de tarefas do Windows.

    /crosssession

    Permite analisar os processos em outras sessões de logon.Essa opção é necessária se o aplicativo ASP.NET estiver sendo executado em uma sessão diferente.A ID da sessão é listada na coluna ID da sessão na guia de processos do gerenciador de tarefas do Windows./CS pode ser especificado como uma abreviação para /crosssession.

    /waitstart[:Interval]

    Especifica o número de segundos para esperar pelo profiler inicializar antes que ele retorne um erro.Se Interval não for especificado, o criador de perfis aguardará indefinidamente.Por padrão, /start retorna imediatamente.

    /globaloff

    Para iniciar o criador de perfis com a coleção de dados pausada, adicione a opção de /globaloff à linha de comando /start.Use /globalon para continuar a criação de perfis.

    /counter:Config

    Coleta informações do contador de desempenho do processador especificado na configuração.As informações de contador são adicionadas aos dados coletados em cada evento de perfis.

    /wincounter:WinCounterPath

    Especifica o contador de desempenho do Windows que será coletado durante a análise.

    /automark:Interval

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

    /events:Config

    Especifica um rastreamento de evento para evento do Windows (ETW) para ser coletado durante a análise.Os eventos de ETW são coletados em um arquivo separado (.etl).

  8. Se necessário, inicie o serviço.

  9. Anexa o criador de perfis ao serviço.Tipo:

    **VSPerfCmd /attach:**PID|ProcessName

    • Especifique o nome de identificação ou do processo do serviço.Você pode exibir os IDs e os nomes de todos os processos em execução no Gerenciador de Tarefas do Windows.

Coleta de dados de controle

Quando o serviço é executado, você pode controlar a coleção de dados iniciando e parando a escrita de dados para o arquivo usando opções VSPerfCmd.exe.A coleta de dados de controle permite que você colete dados para uma parte específica de execução do programa, como o inicio ou término do aplicativo.

Para iniciar e parar a coleção de dados

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

    Opção

    Descrição

    /globalon /globaloff

    Inicia (/globalon) ou para (/globaloff) a coleção de dados para todos os processos.

    /processon:PID/processoff:PID

    Inicia (/processon) ou interrompe a coleta de dados (/processoff) para o processo especificado pelo ID de processo (PID).

    /threadon:TID/threadoff:TID

    Inicia (/threadon) ou interrompe a coleta de dados do thread (/threadoff) para o thread especificado por ID de threads (TID).

Finalizando a sessão de análise

Para encerrar uma sessão de criação de perfil, feche o aplicativo que está executando o componente instrumentado e, em seguida, inicie a opção VSPerfCmd /shutdown para desativar o criador de perfis e feche o arquivo de dados de criação de perfil.O comando VSPerfClrEnv /globaloff apaga as variáveis de ambiente de criação de perfis.

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

  1. Interromper o serviço do Gerenciador de Controle de Serviços.

  2. Encerrar o criador de perfis.Tipo:

    VSPerfCmd /shutdown

  3. Quando você tiver concluído todas as criações de perfil, desmarque as variáveis de ambiente de criação de perfil.Tipo:

    VSPerfClrEnv /globaloff

    Substitua o módulo instrumentado pelo original.Se necessário, reconfigure o tipo de inicialização do serviço.

  4. Reinicie o computador.

Consulte também

Conceitos

Criação de perfil dos serviços de linha de comando

Outros recursos

Exibições de dados da memória do .NET das ferramentas de criação de perfil