Compartilhar via


Instrumentar seu aplicativo .NET no Visual Studio (C#, C++, Visual Basic, F#)

Com o lançamento do Visual Studio 2022 versão 17.5, você pode usar a nova ferramenta Instrumentação dinâmica. Essa ferramenta mostra o número exato de vezes que suas funções são chamadas e é mais rápida do que a versão anterior da ferramenta Instrumentação. Ela dá suporte à instrumentação do .NET Core sem a necessidade de PDBs. A partir do Visual Studio 2022 versão 17.6 Versão Prévia 2, a ferramenta também dá suporte a C/C++.

A ferramenta é semelhante à ferramenta Uso da CPU, exceto que se baseia no tempo real decorrido em vez de na utilização da CPU. Isso significa que o tempo bloqueado, por exemplo, o tempo gasto aguardando bloqueios, aparecerá no rastreamento de instrumentação, ao contrário do que ocorre com a ferramenta Uso da CPU. Para obter informações adicionais sobre como aprender a usar a ferramenta Instrumentação de maneira efetiva, consulte Visão geral da instrumentação e Aprimorando o desempenho do Visual Studio com a nova ferramenta de instrumentação.

Instrumentar seu aplicativo

  1. Selecione Alt+F2 (ou Depurar > Criador de Perfil de Desempenho) para abrir o criador de perfil de desempenho no Visual Studio.

  2. Marque a caixa de seleção Instrumentação.

    Captura de tela mostrando a ferramenta Instrumentação selecionada.

    Se você habilitar a opção Iniciar com a coleção em pausa antes de iniciar o criador de perfil, os dados não serão coletados até que você selecione o botão Gravar na exibição da sessão de diagnóstico.

    Observação

    Se a ferramenta não estiver disponível para seleção, desmarque a caixa de seleção de todas as outras ferramentas, pois algumas ferramentas precisam ser executadas sozinhas. Para saber mais sobre como executar ferramentas em conjunto, consulte Usando várias ferramentas de criação de perfil simultaneamente.

    Se a ferramenta ainda não estiver disponível, verifique se o projeto atende aos requisitos anteriores. Verifique se o projeto está no modo Versão para capturar os dados mais precisos.

  3. Selecione o botão Iniciar para executar a ferramenta.

  4. Selecione os itens no programa para instrumentar.

    Captura de tela mostrando a caixa de diálogo Selecionar itens para instrumentar.

    A partir do Visual Studio 2022 versão 17.11 Versão Prévia 1, o criador de perfil mantém os itens selecionados para a próxima execução de criação de perfil.

  5. Selecione OK.

  6. Após a ferramenta começar a ser executada, percorra o cenário cujo perfil você deseja criar em seu aplicativo. Em seguida, selecione Parar coleta ou feche o aplicativo para ver seus dados.

Analisar o relatório de Instrumentação

Seus dados de criação de perfil são exibidos no Visual Studio.

Captura de tela mostrando os dados de Instrumentação do .NET.

A exibição de dados de Instrumentação mostra uma lista de funções ordenadas pela execução mais prolongada, com a função no topo em Principais Funções. A seção Caminho Crítico mostra a pilha de chamadas para as funções que estão usando mais tempos. Essas listas podem ajudar a levar você para funções em que estão ocorrendo gargalos de desempenho.

Clique em uma função de seu interesse e você obterá uma exibição mais detalhada.

Os dados disponíveis são semelhantes às da ferramenta Uso da CPU, com a diferença de que eles se baseiam no tempo real decorrido e na contagem de chamadas, em vez de na utilização da CPU.

Analisar insights

Se algum insight aparecer na seção Principais Insights , use o link fornecido para obter mais informações sobre o problema identificado. Para obter mais informações, consulte Insights da CPU, mas lembre-se de que as informações da ferramenta Instrumentação são específicas para o tempo do relógio de parede e não para a utilização da CPU.

Além disso, se você estiver usando o Copilot, use o botão Perguntar ao Copilot para abrir a janela de chat do Copilot, e o Copilot fornecerá sugestões com base em um exame do seu código e de quaisquer problemas identificados.

Analisar relatórios detalhados de instrumentação

Para analisar o relatório de instrumentação, clique em Abrir detalhes ou clique em uma das principais funções para abrir o modo de exibição Funções.

O relatório fornece diferentes exibições dos dados de diagnóstico:

  • Chamador/Computador chamado
  • Árvore de chamadas
  • Módulos
  • Funções
  • Grafo de chama

Em todos os modos de exibição, exceto Chamador/Computador chamado, o relatório de diagnóstico é classificado pelo Total [unidade, %], da mais alta para a mais baixa. Altere a ordem de classificação ou a coluna de classificação selecionando os cabeçalhos de coluna. Você pode clicar duas vezes em uma função na qual está interessado e verá a fonte da função, bem como realçar que mostra onde o tempo é gasto nessa função. A tabela mostra colunas com dados como o tempo gasto na função, incluindo funções chamadas (Total) e uma segunda coluna que mostra o tempo gasto em uma função, excluindo as funções chamadas (Auto).

Esses dados podem ajudá-lo a avaliar se a própria função é um gargalo de desempenho. Determine quantos dados o método está exibindo para ver se o código de terceiros ou as bibliotecas de runtime são o motivo para seus pontos de extremidade estarem lentos ou pesados no consumo de recursos.

Para obter mais informações sobre como usar o Flame Graph, consulte Identificar caminhos críticos com o Flame Graph.

Árvore de chamadas de Instrumentação

Para exibir a árvore de chamadas, selecione o nó pai no relatório. Por padrão, a página Instrumentação é aberta no modo de exibição Chamador/Computador chamado. Na lista suspensa Exibição Atual, selecione Árvore de Chamadas. A exibição de árvore de chamadas pode ajudá-lo a identificar rapidamente gargalos de desempenho.

Você pode clicar nos botões Expandir Caminho Frequente e Mostrar Caminho Frequente para ver as chamadas de função que usam mais tempo de relógio de parede na exibição de árvore de chamadas.

Captura de tela mostrando a estrutura da árvore de chamadas.

Aqui há mais informações sobre os valores de coluna:

  • Total indica quanto tempo foi gasto na função e por todas as funções chamadas por ela. Os valores altos de Total apontam para as funções que estão consumindo mais tempo de relógio.

  • Auto indica quanto tempo foi gasto no corpo da função, excluindo o tempo gasto em quaisquer funções que foram chamadas por ele. Valores altos de Auto podem indicar um gargalo de desempenho dentro da própria função.

  • Contagem de Chamadas indica o número de vezes que uma função é chamada.

  • Módulo O nome do módulo que contém a função.