Partilhar via


Meça o desempenho do aplicativo a partir da linha de comando

Você pode coletar informações de desempenho sobre um aplicativo usando ferramentas de linha de comando. Você pode coletar dados de desempenho para uso da CPU, alocação de memória .NET, instrumentação e consultas de banco de dados.

No exemplo descrito neste artigo, você coleta informações de desempenho para o Bloco de Notas da Microsoft, mas o mesmo método pode ser usado para criar o perfil de qualquer processo.

Observação

Para gerar um componente C/C++ instrumentado a partir da linha de comando, consulte Instrumentar um componente autônomo nativo antes de seguir as etapas deste artigo. Para dados de uso da CPU, você pode usar os procedimentos descritos neste artigo.

Pré-requisitos

  • Visual Studio 2019 ou versões posteriores

  • Familiaridade com ferramentas de linha de comando

  • Para coletar informações de desempenho em uma máquina remota sem o Visual Studio instalado, instale o Ferramentas Remotas para Visual Studio na máquina remota. A versão das ferramentas deve corresponder à sua versão do Visual Studio.

A maioria dos agentes de coleta oferece suporte a .NET Core, .NET 5+, .NET Framework e C++. No entanto, o suporte é limitado ao suporte fornecido pela ferramenta de desempenho correspondente. Por exemplo, o agente de coleta do Database é limitado ao .NET Core e ao .NET 5+.

Coletar dados de desempenho

A perfilização usando as ferramentas de linha de comandos do Visual Studio Diagnostics é realizada associando a ferramenta de perfilização, juntamente com um dos agentes de recolha, a um processo. Ao anexar a ferramenta de criação de perfil, você inicia uma sessão de diagnóstico que captura e armazena dados de criação de perfil até que a ferramenta seja interrompida, momento em que esses dados são exportados para um arquivo de .diagsession. Em seguida, você pode abrir esse arquivo no Visual Studio para analisar os resultados.

  1. Inicie o Bloco de Notas e, em seguida, abra o Gestor de Tarefas para obter o respetivo ID de processo (PID). Gestor de Tarefas, localize o PID no separador Detalhes.

  2. Abra um prompt de comando e mude para o diretório com o executável do agente de coleção, normalmente aqui (para Visual Studio Enterprise).

    <Visual Studio installation folder>\18\Enterprise\Team Tools\DiagnosticsHub\Collector\

    <Visual Studio installation folder>\2022\Enterprise\Team Tools\DiagnosticsHub\Collector\

    Para as ferramentas remotas, o executável do agente de coleta está neste local:

    Program Files\Microsoft Visual Studio 17.0\Team Tools\DiagnosticsHub\Collector\

    Observação

    Ao usar a linha de comando em cenários remotos, você precisa executar as instruções de linha de comando na máquina remota. Se quiser anexar-se à máquina remota a partir do Visual Studio, use o Analisador de Desempenho no Visual Studio.

  3. Inicie VSDiagnostics.exe digitando o seguinte comando.

    VSDiagnostics.exe start <id> /attach:<pid> /loadConfig:<configFile>
    

    Os argumentos que devem ser incluídos são:

    • < id> Identifica a sessão de recolha. O ID deve ser um número entre 1-255.
    • < PID>, PID do processo que você deseja perfilar, neste caso o PID que você encontrou na etapa 1.
    • < configFile>arquivo de configuração para o agente de coleta que você deseja iniciar. Para obter mais informações, consulte Arquivos de configuração para agentes.

    Por exemplo, você pode usar o seguinte comando para o agente CPUUsageBase substituindo o pid conforme descrito anteriormente.

    VSDiagnostics.exe start 1 /attach:<pid> /loadConfig:AgentConfigs\CPUUsageLow.json
    

    Como alternativa, você pode usar o comando launch para iniciar um executável. Nesse cenário, você não precisa obter a ID do processo e anexá-la. Todas as ferramentas suportam o comando launch, embora algumas não ofereçam suporte a attach, como a ferramenta Instrumentação e Alocação .NET. Por exemplo, use o seguinte para iniciar um executável e coletar dados de instrumentação:

    VSDiagnostics start <id> /launch:<ExeToProfile> /loadConfig:AgentConfigs\PerfInstrumentation.json
    
  4. Redimensione o Bloco de Notas ou digite algo nele para garantir que algumas informações interessantes de criação de perfil sejam coletadas.

  5. Pare a sessão de coleta e envie a saída para um arquivo digitando o seguinte comando.

    VSDiagnostics.exe stop <id> /output:<path to file>
    
  6. Localize o saída do arquivo .diagsession do comando anterior e abra-o no Visual Studio (File>Open) para examinar as informações coletadas.

    Para analisar os resultados, consulte a documentação da ferramenta de desempenho correspondente. Por exemplo, esta pode ser a ferramenta de Uso da CPU ,, a ferramenta de Alocação de Objetos .NET ,, a ferramenta de Instrumentação ,, ou a ferramenta de Banco de Dados ,.

Arquivos de configuração do agente

Os agentes de coleta são componentes intercambiáveis que coletam diferentes tipos de dados, dependendo do que você está tentando medir.

Por conveniência, recomendamos que você armazene essas informações em um arquivo de configuração do agente. O arquivo de configuração é um arquivo .json que contém no mínimo o nome do .dll e seu CLSID COM. Por padrão, você pode encontrar os arquivos de configuração de exemplo na seguinte pasta:

Program Files\Microsoft Visual Studio\<version>\<sku>\Team Tools\DiagnosticsHub\Collector\AgentConfigs

As configurações de CpuUsage (Base/High/Low) correspondem aos dados recolhidos pela ferramenta de avaliação de desempenho de uso da CPU . As configurações de DotNetObjectAlloc (Base/Low) correspondem aos dados coletados para a ferramenta de alocação de objetos .NET .

As configurações Base/Low/High referem-se à taxa de amostragem. Por exemplo, Low é 100 amostras/segundo e High é 4000 amostras/segundo.

Para a ferramenta VSDiagnostics.exe funcionar com um agente de cobrança, ela requer tanto uma DLL como um CLSID COM para o agente apropriado. O agente também pode ter opções de configuração adicionais, que seriam quaisquer opções especificadas no arquivo de configuração, formatadas como JSON com escape adequado.

Permissões

Para criar o perfil de um aplicativo que requer permissões elevadas, você deve fazê-lo a partir de um prompt de comando elevado.