Como: instrumento um.NET Framework Service e coletar dados de memória usando a linha de comando do Profiler
Este tópico descreve como usar Visual Studio ferramentas para traçar perfil de linha de comando de ferramentas para instrumentar um serviço de .NET Framework e para coletar dados do uso de memória.Você pode coletar dados de alocação de memória, ou você pode reunir a alocação de memória objeto e dados do tempo de vida.
Observação |
---|
Os recursos avançados de segurança no windows 8 e Windows Server 2012 necessárias alterações significativas de forma que o profiler do Visual Studio coleta dados em essas plataformas.Os apps de armazenamento do windows também requerem novas técnicas de coleção.Consulte Criando perfis de aplicativos do Windows 8 e 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 pode ser reiniciado depois que inicia o computador, como um serviço que começam quando o sistema operacional começa. Ferramentas de linha de comando de ferramentas para estão localizadas no subdiretório \ ferramentas de equipe \ ferramentas de desempenho o diretório de instalação de Visual Studio .Em os computadores de 64 bits, de 64 bits e em versões de 32 bits de ferramentas está disponível.Para usar as ferramentas de linha de comando profiler, você deve adicionar o caminho de ferramentas para a variável de ambiente PATH da janela do prompt de comando ou adicioná-lo ao comando próprio.Para obter mais informações, consulte Especificando o caminho para a criação de perfil de ferramentas de linha de comando. |
Inicial para a sessão
Para coletar dados de desempenho de um serviço de .NET Framework , você usa a ferramenta de VSPerfCLREnv.cmd para inicializar variáveis de ambiente apropriados e a ferramenta de VSInstr.exe provida para criar uma cópia do arquivo binário de serviço.
O computador que hospeda o serviço deve ser reiniciado configurá-lo para analisar.Você também deve iniciar manualmente o serviço do Gerenciador de Controle de Serviços.Você inicia o profiler, e enfia no serviço de .NET Framework .
Quando o componente instrumentado é executado, os dados são coletados de memória automaticamente em um arquivo de dados.Você pode pausar e continuar a coleção de dados durante a sessão para.
Para finalizar a uma sessão, você fechar o serviço e explicitamente fecha o profiler.Em a maioria dos casos, recomendamos desmarque as variáveis de ambiente a no final de uma sessão.
Para iniciar a analisar um serviço do .NET Framework
Abra uma janela de prompt de comando.
Use a ferramenta de VSInstr para produzir uma versão provida de binária do serviço.
Use o Gerenciador de Controle de Serviços para substituir o binária original com a versão provida.Certifique-se de que o tipo de inicialização do serviço é definido para o manual.
Inicializar variáveis de ambiente a.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
Coleta dados de alocação de memória somente.
/globaltracegclife
Coleta dados do tempo de vida de alocação de memória e do objeto.
Reinicie o computador.
Abra uma janela de prompt de comando.
Ligue o profiler.Tipo:
VSPerfCmd/start:trace/output**:**OutputFile [Options]
A opção /start: contention inicializa o profiler.
A opção de **/output:**OutputFile é necessária com /start.OutputFile especifica o nome e o local de dados a .vsp () autônomos.
Você pode usar qualquer uma das seguintes opções com a opção de /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 da conta de usuário que possui o processo de trabalho do ASP.NET.Essa opção é necessária se o processo está sendo executado como um usuário diferente do usuário autorizado.O proprietário do processo é listado na coluna do nome de usuário na guia dos 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 está executando em uma sessão diferente.A identificação da sessão é listada na coluna de identificação de sessão no guia dos 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 o profiler para inicializar antes que retorna um erro.Se Interval não for especificado, o profiler espera indefinidamente.Por padrão, /start retorna imediatamente.
Para iniciar o profiler com coleção de dados pausou, adicione a opção de /globaloff a linha de comando de /start .Use /globalon para continuar a análise.
/counter:Config
Coleta informações de contador de desempenho do processador especificado na configuração.Informações sobre o contador é adicionada aos dados coletados em cada evento para.
/wincounter:WinCounterPath
Especifica o windows que o desempenho ao contrário de é 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 é ms 500.
/events:Config
Especifica um rastreamento de evento para o evento do windows (ETW) é coletado durante a análise.Os eventos de ETW são coletados em um arquivo separado .etl ().
Se necessário, inicia serviço o.
Anexar o profiler para o serviço.Tipo:
**VSPerfCmd /attach:**PID|ProcessName
- Especificar o nome de identificação de processo ou do processo de serviço.Você pode exibir os IDs de processo 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 executar, você pode controlar a coleção de dados inicial e parar a escrita de dados para o arquivo com opções de VSPerfCmd.exe .A coleção de dados de controle permite que você reunir dados para uma parte específica de execução do programa, como iniciar ou feche o aplicativo.
Para iniciar e parar a coleção de dados
Os seguintes pares de opções de VSPerfCmd começam e param a coleção de dados.Especifique cada opção em uma linha separada de comando.Você pode desativar a coleção de dados em e várias vezes.
Opção
Descrição
Inicia/globalon() ou coleção de dados paradas de/globaloff() para todos os processos.
/processon:PID/processoff:PID
Inicia/processon() ou coleção de dados paradas de/processoff() para o processo especificado pela identificação de processo (PID).
/threadon:TID/threadoff:TID
Inicia/threadon() ou coleção de dados paradas de/threadoff() para o segmento especificado pela identificação de segmentos (TID).
Você também pode usar a opção de VSPerfCmd.exe/mark insira uma marca para no arquivo de dados.o comando de /mark adiciona um identificador, um carimbo de data/hora, e uma cadeia de caracteres de texto definido pelo usuário opcional.As marcas podem ser usadas para filtrar os dados nos relatórios profiler e em modos de exibição de dados.
Terminando à sessão
Para uma sessão para terminar, feche o aplicativo que está executando o componente instrumentado, então para iniciar a opção de VSPerfCmd/shutdown desativar o profiler e feche o arquivo de dados para.O comando de VSPerfClrEnv /globaloff limpa todas as variáveis de ambiente a.
Para finalizar a uma sessão
Interromper o serviço do Gerenciador de Controle de Serviços.
Feche o profiler.Tipo:
VSPerfCmd /shutdown
Quando você tiver terminado qualquer analisar, desmarque as variáveis de ambiente a.Tipo:
VSPerfClrEnv /globaloff
Substitua o módulo instrumentado com o original.Se necessário, reconfigurar o tipo de inicialização de serviço.
Reinicie o computador.
Consulte também
Conceitos
Criação de perfil de linha de comando dos serviços
Outros recursos
Ferramentas de criação de perfil.Modos de exibição de dados de memória de NET