Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Com o lançamento do Visual Studio 2022 versão 17.5, você pode usar a nova ferramenta de Instrumentação dinâmica. Essa ferramenta mostra o número exato de vezes que suas funções são chamadas e é mais rápida em relação à versão anterior da Ferramenta de Instrumentação. Essa ferramenta 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 de Uso de CPU, exceto que é baseada no tempo de relógio real em vez da 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 adquirir informações adicionais sobre como aprender a usar a ferramenta de instrumentação de forma eficaz, consulte Visão Geral da Instrumentação e Estudo de Caso: Isolar um Problema de Desempenho.
Instrumentar seu aplicativo
No projeto do Visual Studio, defina a configuração da solução como Liberar e selecione o destino de implantação.
O destino de implantação normalmente corresponde ao nome do projeto, indicando uma implantação local.
Selecione Alt+F2 (ou Depurar > Criador de Perfil de Desempenho) para abrir o criador de perfil de desempenho no Visual Studio.
Marque a caixa de seleção Instrumentação.
Se você habilitar a opção Iniciar com a coleção pausada antes de iniciar o criador de perfil, os dados não serão coletados até que você selecione o botão Gravar no modo de exibição de 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 porque algumas ferramentas precisam ser executadas sozinhas. Para saber mais sobre como executar ferramentas em conjunto, consulte Usando várias ferramentas 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 de versão para capturar os dados mais precisos.
Para alguns tipos de projeto, como o CMake, você deve definir o destino de inicialização como Executável. Para obter mais informações, consulte Quais ferramentas têm suporte para meu projeto?.
Selecione o botão Iniciar para executar a ferramenta.
Selecione os itens em seu programa para instrumentar.
A partir da versão 17.11 do Visual Studio 2022, o criador de perfil mantém os itens selecionados para a próxima execução de criação de perfil.
A partir do Visual Studio 2022 versão 17.13 Prévia 1, você pode selecionar itens para instrumentar em C++.
Selecione OK.
Depois que a ferramenta começar a ser executada, examine o cenário que você deseja criar no 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.
A visualização de dados de instrumentação mostra uma lista de funções ordenadas pelo maior tempo de execução, com a função de maior tempo de execução na parte superior em Funções Principais. 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 na qual você está interessado e veja uma exibição mais detalhada.
Os dados disponíveis são semelhantes à ferramenta Uso da CPU, exceto que elas são baseadas na hora do relógio e nas contagens de chamadas em vez da utilização da CPU.
Analisar insights
Se os insights aparecerem na seção Top 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 a hora do relógio de parede e não para a utilização da CPU.
Obter assistência de IA
Se você tiver o Copilot, poderá obter assistência de IA enquanto estiver examinando os principais insights. O Copilot fornece informações e insights relacionados a um conjunto de insights de desempenho específicos. Com o Copilot, você também pode fazer perguntas sobre funções nos caminhos quentes identificados em seu código, o que pode ajudá-lo a produzir um código mais eficiente ou econômico.
O botão Perguntar CopilotCaptura de tela do botão Perguntar Copilot. Aparece mesmo que nenhum insights de desempenho específicos sejam identificados. Selecione Fazer Copilot para aprender com Copilot e começar a fazer perguntas.
Analisar relatórios detalhados de instrumentação
Para análise detalhada do relatório de instrumentação, primeiro abra uma das exibições detalhadas do relatório:
Clique em Abrir detalhes na página de resumo do relatório ou selecione uma das principais funções para abrir o modo de exibição Funções .
Na lista Exibição Atual , você pode selecionar uma das exibições detalhadas do relatório.
A tabela a seguir fornece uma descrição das exibições detalhadas.
| Visualizar | Descrição |
|---|---|
| Chamador/Computador chamado | Exibição detalhada do tempo gasto em uma função específica, as funções que a chamaram e as funções que ela chama. Os dados de desempenho são agregados para o período de coleta de dados. Você pode selecionar funções de chamada e funções chamadas para percorrer o caminho da chamada. |
| Árvore de chamadas | Exibição hierárquica do caminho de chamada de função. Usado para identificar caminhos de chamada que estão tomando mais tempo (caminho quente). |
| Módulos | Exibição do tempo gasto em módulos individuais, agregados durante o período de coleta de dados. Usado para identificar módulos que podem ser gargalos de desempenho devido a uma combinação de altas contagens de chamadas e/ou problemas de desempenho. |
| Functions | Exibição do tempo gasto em funções individuais, agregadas durante o período de coleta de dados. Usado para identificar funções que podem ser gargalos de desempenho devido a uma combinação de altas contagens de chamadas e/ou problemas de desempenho. |
| Flame Graph | Exibição hierárquica do caminho de chamada de função em uma visualização do Flame Graph. Usado para identificar caminhos de chamada que estão tomando mais tempo (caminho quente). |
Em todos os modos de exibição, exceto Chamador/Computador chamado, o relatório de diagnóstico é classificado por Total [unidade, %], do maior para o menor. 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á o código-fonte da função, bem como um destaque 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 (Self).
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 Gráfico de Chamas, consulte Identificar caminhos quentes com o Gráfico de Chamas.
Á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 de Instrumentação é aberta na exibição Chamador/Computador chamado. Na lista suspensa Exibição Atual, selecione Árvore de Chamadas. A visualização em árvore de chamadas pode ajudá-lo a identificar rapidamente os gargalos de desempenho.
Você pode clicar nos botões Expandir Caminho Crítico e Mostrar Caminho Crítico para ver as chamadas de função que usam mais tempo de relógio de parede no modo de exibição da árvore de chamadas.
Veja mais informações sobre os valores da coluna:
Total indica quanto tempo foi gasto na função e quaisquer funções chamadas por ela. Valores altos de Total apontam para as funções que estão consumindo mais tempo de relógio.
Self indica quanto tempo foi gasto no corpo da função, excluindo o tempo gasto em qualquer função chamada por ela. Valores altos de Self 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.
Para obter ajuda para entender dados inesperados na árvore de chamadas, consulte Noções básicas sobre a árvore de chamadas.
Chamadas assíncronas na árvore de chamadas de instrumentação (.NET)
A partir do Visual Studio 2022 versão 17.13 Preview 2, exibições que representam uma árvore de chamadas visuais aninham chamadas assíncronas .NET nas funções onde a chamada assíncrona foi feita, facilitando o rastreamento do fluxo de execução em apenas um rastreamento de pilha unificado. Isso pode ajudá-lo a identificar rapidamente gargalos de desempenho.
O rastreamento de pilha unificado é exibido na exibição Árvore de Chamadas e na seção Caminho Crítico da página Resumo. Os nós assíncronos aparecem com o descritor [Chamada Assíncrona].
Você pode alternar a exibição de uma pilha de chamadas assíncronas costuradas selecionando Costurar Pilhas Assíncronas da opção Filtrar na exibição de Resumo do criador de perfil. Essa configuração é habilitada por padrão.