Focar o gráfico de rastreio em pilhas sobrepostas
Quando usa o filtro Foco, seleciona uma única função e o gráfico de chamas apresenta os caminhos de código que entram e saem dessa função específica. Um gráfico focado permite-lhe realizar duas tarefas comuns:
- Analisar o consumo de recursos agregado de uma determinada função que é chamada a partir de vários locais.
- Analisar a proporção de tempo gasto numa função para diferentes autores da chamada da função.
Por exemplo, como analisa o consumo de recursos em torno da função Sort
usando o gráfico de chamas padrão?
 
Na secção seguinte, focamos o gráfico em Sort e respondemos a esta pergunta.
Os gráficos de chamas nesta página foram criados com o Modo de cor e a opção Comparar com definidos para os valores predefinidos de Nome e Nenhum, respetivamente.
Explicação do gráfico focado
O gráfico criado pelo filtro Foco cria efetivamente dois gráficos de chamas para a função especificada e junta-os:
 
No gráfico anterior, o frame correspondente à função Sort tem largura total e está realçado. O texto da frame inclui o nome da função, uma percentagem e o número de perfis usados para a análise. Neste caso, as métricas indicam que a função Sort, no total, consumiu 8,85% do tempo da CPU.
A metade inferior do gráfico anterior trata a função Sort como o ponto de partida de um gráfico de chamas padrão e mostra todos os respetivos destinatários.
Pode criar esta parte com o gráfico de chamas padrão através do filtro Mostrar a partir do frame:
 
A metade superior do gráfico mostra as pessoas que ligaram para Sort com as pessoas que receberam a chamada ocultas. Pode fazer uma aproximação da metade superior através de uma série de filtros.
Comece por adicionar um filtro Mostrar conjuntos para Sort. Em seguida, para cada função chamada por Sort, adicione Hide stacks ou Hide frames. Nesta situação, adicionaria uma ocultação de frames para quickSort para eliminar esta função e os respetivos elementos secundários e, em seguida, adicionaria ocultação de frames para Len e maxDepth:
 
Com estes filtros, a aproximação da metade superior do gráfico focado mostra que a função Sort é alcançada através de diferentes pilhas de chamadas. No entanto, as métricas não são agregadas, pelo que o gráfico não
ilustra o consumo geral de métricas por Sort.
O gráfico focado é ligeiramente diferente de um gráfico que apenas combina as duas aproximações:
- Existe um único frame para a função de foco Sort.
- O frame da função de foco está realçado, é um frame de largura total e apresenta métricas que são a agregação de todas as pilhas de chamadas.
- Existem várias sequências de chamadas, cada uma a começar com um frame root, para que possa ver a sequência de chamadas completa.
Selecionar uma moldura
Se selecionar um frame num gráfico focado, o gráfico de chamas é redesenhado com a pilha de chamadas desse frame apresentada com mais detalhes. Se o frame for alcançado através de várias pilhas de chamadas, cada uma dessas pilhas de chamadas é apresentada. As pilhas de chamadas que não incluem a frame estão ocultas. Para restaurar o gráfico ao estado original, selecione a moldura que corresponde à função de foco.
No exemplo anterior, Sort é chamado por (*byFreq).sort e por
(*byLiteral).sort. Para ver a pilha de chamadas de (*byLiteral).sort com mais detalhes, selecione essa frame.
Pode selecionar outro frame e refinar ainda mais as pilhas de chamadas apresentadas:
 
Para restaurar um gráfico de chamas focado ao respetivo estado original, selecione a frame que apresenta o valor do filtro Foco. Neste caso, selecione a moldura cinzenta com a etiqueta Sort. Tenha em atenção que, para restaurar um gráfico de chamas padrão ao respetivo estado original, selecione a frame raiz.
Analisar o gráfico
Para analisar um gráfico de chamas focado, usa os mesmos controlos e filtros que usa para analisar um gráfico de chamas padrão. No entanto, existem diferenças na forma como os gráficos interagem com o ponteiro:
- Se passar o cursor do rato sobre um frame, a sugestão apresenta dados de métricas. Para um gráfico de chamas padrão, são apresentados os dados totais das métricas para o frame. Para um gráfico de chamas focado, são apresentados os dados das métricas agregadas da função. 
- Se selecionar um frame, o gráfico de chamas é redesenhado com esse frame apresentado a toda a largura. Para restaurar um gráfico de chamas padrão à sua forma original, tem de selecionar a frame superior. Para restaurar um gráfico de chamas focado à sua forma original, tem de selecionar a frame que apresenta o valor do filtro de foco. 
Para ver informações sobre o gráfico focado quando está a comparar perfis, consulte o artigo Focar uma comparação.
Definir o filtro de foco
Existem diferentes métodos que pode usar para definir um filtro de foco, mas resultam no mesmo gráfico.
Usando o gráfico
Coloque o ponteiro no frame de interesse e, de seguida, clique em Focar na dica
do frame.
A função de foco é extraída da moldura.
Neste exemplo, o gráfico de chamas, que está expandido em torno da função (*huffmanBitWriter).write, apresenta três diferentes pilhas de chamadas:
 
Usando a lista de foco
Para focar o gráfico de chamas numa função específica, faça o seguinte:
- Clique em Lista list para abrir a tabela Selecionar função de foco.
- Selecione um nome de função na tabela ou, para uma função específica, clique em Ações more_vert e, de seguida, selecione Foco:
 
Se a função que selecionou puder ser chamada através de diferentes pilhas de chamadas, cada pilha de chamadas é apresentada no gráfico de chamas.
Pode ordenar as linhas da tabela por ordem ascendente arrow_upward  ou
descendente arrow_downward
selecionando um elemento de cabeçalho da tabela.
Cada linha da tabela apresenta um nome de função e estatísticas relacionadas com a execução da função.
Esta tabela mostra que a função (*compressor).deflate requer 2,78 s para ser executada, com 1,8 s gastos na própria função e o restante tempo gasto na respetiva pilha de chamadas.
Uma coluna de percentagem indica que 57% do tempo de execução total é gasto na função (*compressor).deflate. Outra coluna indica que, 89% das vezes, (*compressor).deflate ou uma função na respetiva pilha de chamadas está a ser executada.
Por último, a coluna de contagem indica que existem três sequências que invocam a função (*compressor).deflate.
Quando compara perfis, o conteúdo da lista de foco é diferente. Para mais informações, consulte o artigo Focar uma comparação.
Usando a barra de filtros
Clique no texto cinzento Adicionar filtro de dados do perfil na barra de filtros e, de seguida, introduza Focus: e uma string que identifique a função na qual se concentrar. Pode usar uma substring, incluindo prefixos de pacotes,
ou o nome completo. Quando fornece uma string ambígua, é selecionada a função que melhor corresponde à string.
Se preferir, pode clicar em Filtros, selecionar Foco e, de seguida, introduzir a string de identificação.
Se a função que selecionou puder ser chamada através de diferentes pilhas de chamadas, cada pilha de chamadas é apresentada no gráfico de chamas.
Remover o filtro de foco
Para remover o filtro de foco, clique em Fechar close no filtro.