Interagir com o gráfico de chama
O Cloud Profiler exibe dados de criação de perfil usando gráficos de chama. Veja uma introdução conceitual em Gráficos de chama.
O gráfico em dégradé é formado por frames. Cada frame representa uma função no serviço:
A largura de um frame corresponde ao consumo da métrica que está sendo analisada. Por exemplo, o frame do topo representa todo o serviço e consome toda a métrica em análise. Portanto, ele é mostrado com largura total.
Por padrão, a cor do frame corresponde ao pacote da função quando possível. Se as informações do pacote não estiverem disponíveis como acontece com o Node.js, os nomes dos arquivos de origem serão usados para colorir os blocos da função. Em uma pilha de chamadas, há transição de um pacote para o outro quando as cores dos blocos mudam. É possível alterar como os frames são coloridos. Para mais informações, consulte Modo de cor.
O gráfico em dégradé mostra uma ou mais pilhas de chamadas com os valores médios de um conjunto de perfis:
- Cada perfil individual representa dados coletados uma vez por minuto a partir de uma instância do serviço configurado em uma zona do Compute Engine. O período de coleta varia de acordo com o tipo de perfil. Consulte Coleta de perfil para mais informações.
- O número total de 250 perfis tem a média calculada. Se houver mais disponíveis, 250 deles serão selecionados aleatoriamente como um conjunto de amostra.
- O frame do topo ou principal indica o serviço inteiro. Abaixo dele, há outro frame ou conjunto de frames que formam a segunda linha do gráfico. Cada um desses frames codificados por cor é uma chamada avançada feita pelo serviço. Abaixo deles, há outro conjunto de frames de funções. Cada um deles é responsável por alguma parte do recurso do frame superior. A hierarquia de frames de funções no gráfico representa a sequência de chamadas. Já a largura do frame indica a quantidade de recursos que essa função ou método consomem.
Por exemplo, o gráfico do criador de perfil do heap consumido para o docdemo-service mostra que o serviço chama vários frames de nível superior, sendo um deles a função main
do ambiente de execução do Go. A largura desses frames de nível superior mostra que a maior parte do heap é consumida pela pilha de chamadas. Essa pilha envolve a main
do ambiente de execução do Go, além de main
, allocOnce
e allocImpl
, que são específicas do aplicativo:
O frame principal exibe informações de consumo de métricas.
Como passar o cursor sobre um quadro
Quando você coloca o ponteiro sobre um quadro no gráfico em degradê, uma dica é aberta. Ela exibe informações complementares sobre ele:
- Nome da função
- Nome de arquivo da função
- Uso absoluto e percentual de uso
Nas informações de consumo de métrica, o prefixo total indica que a porcentagem e o valor da métrica são referentes a uma função e os filhos dela. Já o prefixo self indica que eles são referentes à função, exceto o consumo dos filhos.
A caixa de diálogo também inclui botões:
- Foco: focaliza o gráfico na função do frame atual.
- Mostrar pilhas: adiciona um filtro para mostrar somente as pilhas que incluem a função desse frame.
- Mostrar histórico: abre a visualização do histórico de função do frame.
Neste exemplo, a dica mostra que a função runtime.main
está localizada no arquivo /usr/local/go/src/runtime/proc.go
. As informações de consumo de métricas mostram que runtime.main
e seus filhos consomem 54,73 MiB de memória, isto é, cerca de 98% da memória total consumida pelo programa:
Como selecionar um quadro
Quando você clica em um quadro, o gráfico em degradê é redesenhado com o quadro exibido na largura total e as cores mais altas na pilha de chamadas são silenciadas. Clicar em um quadro não altera nenhuma configuração, apenas altera a maneira como o gráfico é exibido. Para retornar à visualização original, clique no quadro raiz (superior).
No exemplo a seguir, o ponteiro está sobre um frame pequeno e é difícil visualizar a pilha de chamadas. A dica identifica (*huffmanBitWriter).write
como a função do frame:
Depois de clicar no frame, o gráfico é redesenhado, tornando a pilha de chamadas mais visível:
A seguir
- Filtrar o gráfico de chama.
- Focar o gráfico de chama em uma função.
- Ver tendências históricas.
- Comparar perfis.