Compartilhar via


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çãoObservaçã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çãoObservaçã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

  1. Abra uma janela de prompt de comando.

  2. Use a ferramenta de VSInstr para produzir uma versão provida de binária do serviço.

  3. 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.

  4. 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.

  5. Reinicie o computador.

  6. Abra uma janela de prompt de comando.

  7. 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çã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 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.

    /crosssession

    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.

    /globaloff

    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 ().

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

  9. 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

    /globalon /globaloff

    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

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

  2. Feche o profiler.Tipo:

    VSPerfCmd /shutdown

  3. 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.

  4. 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