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çã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çã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
Abra uma janela de prompt de comando.
Use a ferramenta VSInstr para gerar uma versão provida de binário de serviço.
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.
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.
Reinicie o computador.
Abra uma janela de prompt de comando.
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çã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.
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.
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).
Se necessário, inicie o serviço.
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
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
Interromper o serviço do Gerenciador de Controle de Serviços.
Encerrar o criador de perfis.Tipo:
VSPerfCmd /shutdown
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.
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