Compartilhar via


Medir o desempenho do aplicativo 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 de 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 Microsoft Notepad, mas o mesmo método pode ser usado para criar o perfil de qualquer processo.

Nota

Para gerar um componente C/C++ instrumentado a partir da linha de comando, confira Instrumentar um componente autônomo nativo antes das etapas a seguir neste 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 um computador remoto sem o Visual Studio instalado, instale o Ferramentas Remotas para Visual Studio no computador remoto. A versão das ferramentas deve corresponder à sua versão do Visual Studio.

A maioria dos agentes de coleção dá 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 Coleção de Banco de Dados é limitado ao .NET Core e ao .NET 5+.

Coletar dados de desempenho

A criação de perfil usando as ferramentas da CLI de Diagnóstico do Visual Studio funciona com a anexação da ferramenta de criação de perfil, junto com um dos agentes coletores, 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 os 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 Gerenciador de Tarefas para obter a ID do processo (PID). No Gerenciador de Tarefas, encontre o PID na guia Detalhes.

  2. Abra um prompt de comando e mude para o diretório com o executável do agente coletor, normalmente aqui (para o 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\

    Nota

    Ao usar a linha de comando em cenários remotos, você precisa executar as instruções de linha de comando no computador remoto. Se você quiser se conectar à máquina remota a partir do Visual Studio, use a Ferramenta de Diagnóstico de Desempenho no Visual Studio.

  3. Inicie VSDiagnostics.exe digitando o comando a seguir.

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

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

    • < A ID> Identifica a sessão de coleção. A ID deve ser um número entre 1 e 255.
    • < pid>, PID do processo que você deseja criar o perfil, nesse caso, o PID encontrado na etapa 1.
    • < configFile>, arquivo de configuração do agente de coleção que você deseja iniciar. Para obter mais informações, confira Arquivos de configuração para os agentes.

    Por exemplo, você pode usar o comando a seguir 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 a ele. Todas as ferramentas dão suporte ao comando launch, embora algumas não deem suporte a attach, como a ferramenta de Instrumentação e Alocação do .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. Interrompa a sessão de coleta e envie a saída para um arquivo digitando o comando a seguir.

    VSDiagnostics.exe stop <id> /output:<path to file>
    
  6. Localize o arquivo de saída .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, isso pode ser a ferramenta de Uso da CPU , a ferramenta de Alocação de Objeto .NET , a ferramenta de Instrumentação , ou a ferramenta de Banco de Dados .

Arquivos de configuração do agente

Os Agentes de Coleção 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

Configurações de CpuUsage (Base/Alto/Baixo), que correspondem aos dados coletados para a ferramenta de criação de perfil Uso da CPU. Configurações de DotNetObjectAlloc (Base/Baixo) correspondem aos dados coletados para a ferramenta de Alocação de Objeto .NET.

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

Para que a ferramenta VSDiagnostics.exe funcione com um agente de coleta, ela exige uma DLL e um CLSID COM para o agente apropriado. O agente também pode ter opções de configuração adicionais, que seriam todas as 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 fazer isso em um prompt de comando com privilégios elevados.