Compartilhar via


Como: anexar o Profiler para um.NET Service para coletar dados de memória usando a linha de comando

Este tópico descreve como usar Visual Studio ferramentas para traçar perfil de linha de comando de ferramentas para anexar o profiler a um serviço de .NET Framework e para coletar dados de memória.Você pode coletar dados sobre o número e o tamanho das alocações de memória, e você também pode coletar dados sobre o tempo de vida de objetos de memória.

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

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.

Para coletar dados de memória de um serviço de .NET Framework , você usa a ferramenta de VSPerfCLREnv.cmd para inicializar variáveis de ambiente apropriadas no computador que hospeda o serviço.O computador deve ser reiniciado configurá-lo para analisar.

Você usa a ferramenta de VSPerfCmd para anexar o profiler ao processo de serviço.Quando o profiler é anexado ao serviço, você pode pausar e continuar a coleção de dados.

Para finalizar a uma sessão, o profiler deve ser desanexado de serviço e o profiler deve ser explicitamente fechado.Em a maioria dos casos, recomendamos desmarque as variáveis de ambiente a no final de uma sessão.

Anexando o profiler

Para anexar o profiler a um serviço do .NET Framework

  1. Se necessário, instalar o serviço.

  2. Abra uma janela de prompt de comando.

  3. Inicializar variáveis de ambiente a.Tipo:

    VSPerfClrEnv {/globalsamplegc /globalsamplegclife}[/samplelineoff]

    • As opções /globalsamplegclife e /globalsamplegclife especifica o tipo de dados de memória para coletar.Especifique uma e apenas uma das seguintes opções.
    • /globalsamplegc
      Permite que a coleção de dados de alocação de memória.

    • /globalsamplegclife
      Permite que a coleção de dados de alocação de memória e dados da vida útil de objeto.

    • A opção de /samplelineoff desativa a coleção de dados linha de código-fonte de número.
  4. Reinicie o computador para definir a nova configuração de ambiente.

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

  6. Abra uma janela de prompt de comando.Se necessário, adicione o caminho profiler à variável de ambiente PATH.

  7. Ligue o profiler.Tipo:

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

    • A opção /start:sample 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 uma ou mais 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.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.

    /user:[Domain\UserName]

    Especifica o domínio e o nome de usuário opcionais da conta de logon em que o serviço é executado.A conta de logon é listada no logon como a coluna do serviço no gerenciador de controle de serviço do Windows.

    /crosssession|.cs

    Permite analisar os processos em outras sessões de logon.

    /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. Anexar o profiler para o serviço.Tipo:

    VSPerfCmd/attach:{PID|ProcName} [/targetclr**:**Version]

    • Especificar a identificação de processo ou o nome 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.

    • **targetclr:**Version especifica a versão do common language runtime (CLR) para analisar quando mais de uma versão do runtime é carregada em um aplicativo.Opcional.

Coleta de dados de controle

Quando o serviço executar, você pode usar opções de VSPerfCmd.exe parar e iniciar a escrita de dados no arquivo de dados profiler.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).

    /attach:{PID|ProcName} /detach[: {PID|ProcName}]

    Inicia de/attach para coletar dados para o processo especificado pelo nome de identificação de processo ou do processo./detach para coleta de dados para o processo especificado, ou para todos os processos se um determinado processo não é especificado.

  • 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 finalizar a uma sessão, o profiler não deve coletar dados.Você pode parar a coleção de dados de um aplicativo analisado com o método de amostragem parando o serviço ou chamando a opção de VSPerfCmd /detach .Você chama 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, mas a configuração de sistema não é reiniciada até que o computador está reiniciado.

Para finalizar a uma sessão

  1. Siga um de estes desanexar para o profiler do aplicativo alvo:

    • Interromper o serviço.

      -  ou  -

    • Digite VSPerfCmd /detach

  2. Feche o profiler.Tipo:

    VSPerfCmd /shutdown

  3. (Opcional) desmarque a variáveis de ambiente.Tipo:

    VSPerfClrEnv /globaloff

  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