Partilhar via


Identificar caminhos quentes com um gráfico de chama (C#, Visual Basic, C++, F#)

As ferramentas de criação de perfil do Visual Studio para a utilização da CPU e instrumentação incluem a exibição Flame Graph. O Flame Graph ajuda você a identificar caminhos quentes em seu código, mostrando uma visualização da árvore de chamadas. O caminho quente é a pilha de chamadas para as funções que estão usando mais CPU ou mais tempo, e geralmente é um bom lugar para procurar possíveis otimizações de desempenho. O gráfico fornece uma visão geral visual de onde o tempo está sendo gasto em seu aplicativo e você pode clicar em nós específicos para aprofundá-los ainda mais.

Captura de tela mostrando o Flame Graph com o menu de contexto exibido.

Para obter um tutorial que mostra como melhorar o desempenho usando o gráfico de chamas, consulte Estudo de caso: Guia para iniciantes para otimizar o código. Para obter informações sobre o perfilador de CPU, consulte Analisar o desempenho usando a perfilação de CPU.

Investigue caminhos críticos

A visualização Gráfico de Chamas está na visualização de detalhes do relatório .diagession .

  1. Inicie uma sessão de criação de perfil com a ferramenta Uso da CPU ou Instrumentação.

  2. Depois de parar a sessão de perfilagem e o relatório ser carregado, selecione Abrir detalhes.

    Captura de tela mostrando Abrir detalhes selecionados.

  3. Selecione Gráfico de Chama na seleção suspensa Modo de Exibição Atual.

    Captura de ecrã mostrando a vista Gráfico de Chama selecionada.

    A visualização Gráfico de Chama é exibida.

    Captura de tela mostrando a visão geral do Flame Graph exibida.

    O caminho quente é o caminho de código que usa mais CPU ou mais tempo enquanto você olha para baixo através da árvore de chamadas.

    Por padrão, os dados mostrados no Gráfico de Chama representam os mesmos dados mostrados na vista da árvore de chamadas para o período de coleta de dados. Especificamente, para Uso da CPU, mostra os valores CPU Total. Esse valor é inclusivo, portanto, inclui a utilização da CPU (ou seja, o tempo de computação da CPU) usada por chamadas para a função e quaisquer outras funções chamadas pela função. Da mesma forma, para Instrumentação, o gráfico mostra os valores equivalentes à coluna Total na exibição da árvore de chamadas.

    No entanto, se você selecionar um nó, o nó selecionado se tornará a nova linha de base e usará 100% da largura do gráfico de chama. Isso permite que você visualize melhor uma árvore de chamadas complexa e visualize nomes longos quando eles estão truncados ou ocultos. Aqui está um exemplo de um gráfico de chamas que mostra uma árvore de chamadas mais complexa.

    Captura de tela mostrando o Flame Graph para uma árvore de chamadas complexa.

    Para obter detalhes sobre qualquer nó, selecione-o.

    Escolha Redefinir zoom para retornar à visualização padrão.

    Você também pode navegar entre diferentes modos de exibição no relatório de perfilagem ao selecionar um nó e, em seguida, escolher uma opção como Exibir na estrutura de chamadas no menu de contexto.

    Captura de tela mostrando a opção Flame Graph para visualizar na árvore de chamadas.

Inverter o gráfico de chamas

Por padrão, o gráfico de chama na ferramenta é mostrado de cabeça para baixo ou como um gráfico de icicle, onde o eixo y está contando a profundidade da pilha para baixo a partir de zero na parte superior.

Você pode visualizar um layout de gráfico de chama padrão clicando em Flip Flame Graph.

Captura de tela mostrando o Flip Flame Graph selecionado.

Para um gráfico de chama complexo, você pode ampliar a visualização selecionando elementos específicos.

Na visualização Gráfico de chama, é possível navegar clicando em um nó com o mouse ou utilizando o teclado. Além disso, os seguintes atalhos de teclado são suportados.

Atalho de teclado Comando
Tab Ir para qualquer nó
Seta para cima/para baixo Ir para o pai ou filho de um nó
Seta para a direita/esquerda Ir para o nó correspondente na pilha
Entrar Aumentar o zoom (selecionar)
Fuja Reduzir o zoom