Identificar caminhos quentes com um gráfico de chama (C#, Visual Basic, C++, F#)
As ferramentas de perfilagem do Visual Studio para instrumentação e utilização da CPU incluem a exibição de 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 crítico é a pilha de chamadas para as funções que estão a utilizar mais CPU ou mais tempo, e geralmente é um bom lugar para identificar 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.
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 a ferramenta de análise de CPU, consulte Analisar o desempenho usando a análise de CPU.
Investigue caminhos críticos
A visualização Gráfico de Chama está na visualização de detalhes do relatório .diagession de.
Inicie uma sessão de perfilagem com a ferramenta Uso da CPU ou Instrumentação.
Depois de interromper a sessão de criação de perfil e o relatório ser carregado, selecione Abrir detalhes.
Selecione Gráfico de Chama no menu pendente Modo de Exibição Atual.
A visualização Gráfico de Chama é 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 Flame Graph representam a mesma informação que aparece na visualização da árvore de chamadas para o período de recolha dos dados. Especificamente, para o Uso da CPU, ele mostra os valores de Total de CPU. 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 visualizaçã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 chama que mostra uma árvore de chamadas mais complexa.
Para ver detalhes sobre qualquer nó, selecione-o.
Escolha Redefinir zoom para retornar à visualização padrão.
Você também pode navegar para diferentes visões no relatório de perfilagem selecionando um nó e, em seguida, escolher uma opção como Exibir na árvore de chamadas no menu de contexto.
Inverter o gráfico de chama
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.
Navegar no gráfico de chama
Para um gráfico de chama complexo, você pode ampliar a visualização selecionando elementos específicos.
Na visualização Gráfico de Chama, pode-se navegar clicando num nó com o rato ou utilizando o teclado. Além disso, os seguintes atalhos de teclado são suportados.
Atalho de teclado | Comando |
---|---|
Tabulador | 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ó equivalente na pilha |
Entrar | Ampliar (selecionar) |
Fuja | Reduzir o zoom |