Como filtrar perfis

Escolha quais dados no conjunto de perfis selecionado você quer exibir com filtros.

Cada filtro é especificado por uma FILTER-OPTION predefinida pareada a um VALUE definido pelo usuário:

     [FILTER-OPTION] : [VALUE]

Os filtros usados são exibidos na barra de filtro como ícones de filtro. Cada ícone de filtro exibe a opção do filtro, o valor do filtro e um botão Fechar fechar. Neste exemplo, há um ícone de filtro que exibe Metric : Bytes:

Mostre um ícone de filtro.

O Profiler cria automaticamente um ícone de filtro com uma FILTER-OPTION de Metric e um VALUE com base no tipo de perfil selecionado. É possível alterar VALUE para alguns tipos de perfil. Não é possível remover esse ícone de filtro.

Para adicionar um filtro, use uma das abordagens a seguir:

  • Clique em Filtros, , selecione uma opção na lista e insira o valor.
  • Clique no texto cinza Adicionar filtro de dados do perfil na barra de filtros e, em seguida, insira a opção e o valor do filtro.
  • Para as opções de filtro Foco, Mostrar a partir do frame e Mostrar pilhas, também é possível colocar o ponteiro no frame e selecionar a opção na dica dele.

Para remover um filtro, clique em Fechar no ícone do filtro.

Ao preparar os dados para serem exibidos, o Profiler procura por correspondências entre um frame e um filtro. Quando ocorre uma correspondência, o Profiler usa FILTER-OPTION para determinar qual ação executar. Um frame corresponde ao filtro quando o nome da função do frame ou o nome do arquivo da origem da função contém VALUE. Uma comparação de maiúsculas e minúsculas é realizada. Por exemplo, se o filtro for Hide frames : oo, os frames com funções chamadas foo, foo1 e busyloop serão ocultados do gráfico em degradê.

Métrica

Para definir o modo de agregação do tipo de perfil, use o filtro Métrica. Por exemplo, se você selecionar o tipo de perfil Heap, será possível visualizar os dados em termos de Bytes e Objetos.

As opções disponíveis para o filtro Métrica dependem da linguagem de programação e do Tipo de perfil selecionado:

  • Para perfis Tempo de CPU, a única opção é Tempo de CPU.
  • Para perfis Heap, as opções são:

    • Bytes
    • Objetos
  • Para perfis Heap alocada, as opções são:

    • Total de bytes alocados
    • Total de objetos alocados
  • Para perfis Tempo decorrido, as opções são:

    • Total
    • Tempo decorrido
  • Para perfis Linhas de execução, a única opção é Goroutine.

  • Para perfis Contenção, as opções são:

    • Delay
    • Contenções

Para mais informações sobre tipos de métricas de criação de perfil, consulte os Conceitos de criação de perfil.

Por exemplo, a captura de tela a seguir mostra o consumo de CPU de um programa:

Gráfico do criador de perfil sobre uso da CPU

Nela, você vê que a rotina busyloop chama foo1 e foo2, e ambos chamam várias outras rotinas. É possível adicionar filtros para restringir ainda mais o gráfico somente aos dados de interesse.

Foco

Quando o filtro de Foco é usado, uma única função é selecionada e o gráfico em degradê exibe todos os caminhos de código que entram e saem dessa função específica.

Para mais detalhes sobre como focar o gráfico e interpretar os resultados, acesse Como incluir foco no gráfico.

Mostrar pilhas

Para exibir todas as pilhas de chamadas com um frame que corresponde ao valor do filtro e ocultar todas as outras, use o filtro Mostrar pilhas. O gráfico mostra os autores da chamada e o que foi chamado com relação à função. Ou seja, tudo que chama a função correspondente e tudo que é chamado.

Para restringir o gráfico de uso da CPU do exemplo anterior e mostrar apenas as pilhas de chamadas que incluem a função foo1, defina um filtro Mostrar pilhas em foo1:

Gráfico do criador de perfil sobre uso da CPU filtrado com "Mostrar pilhas"

Nesse caso, as pilhas de chamadas com foo1 são responsáveis por 59% do uso da CPU.

Ocultar pilhas

Oculte todas as pilhas de chamadas com um frame que corresponde ao valor do filtro. Esse filtro geralmente é útil quando você quer ocultar pilhas não interessantes. Por exemplo, com aplicativos Java, é comum adicionar um filtro Hide stacks: unsafe.park.

Mostrar a partir do frame

Para exibir todas as pilhas de chamadas, começando pelo frame que corresponde ao valor do filtro, e ocultar todas as outras, use o filtro Mostrar a partir do frame. O gráfico resultante mostra as pilhas de chamadas da função nomeada para baixo. Esse filtro é útil se a função é chamada de muitos lugares, e você quer ver o consumo total que pode ser atribuído a ela.

Por exemplo, para mostrar apenas chamadas a partir da função baz, defina um filtro Mostrar a partir do frame em baz:

Gráfico do criador de perfil sobre uso da CPU filtrado com "Mostrar a partir do frame"

Ocultar frames

Para ocultar a exibição de todos os frames que correspondem ao valor do filtro, use Ocultar frames. O gráfico mostra os autores da chamada da função, além de tudo que é chamado. Use o filtro para remover do gráfico frames não relevantes.

Por exemplo, para ocultar os frames de foo1 e foo2, defina um filtro Ocultar frames em foo. Como foo1 e foo2 são correspondentes, ambos serão removidos do gráfico. Os dois chamam as rotinas bar e baz, então os dados de cada um deles são agregados.

Gráfico do criador de perfil sobre uso da CPU filtrado com "Ocultar frames"

Destacar

Para destacar todos os frames com nomes de função que correspondem ao valor do filtro, use o filtro Destacar. A função fica no modo de cor normal, mas as sequências de chamada têm cores mais suaves.

Por exemplo, veja um gráfico sem destaques:

Gráfico do criador de perfil sem destaque

Veja o mesmo gráfico com destaque solicitado na função baz:

Gráfico do criador de perfil com destaque

Modo de cor

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. Na configuração padrão, há transição de um pacote para o outro quando as cores dos frames da pilha de chamadas mudam. A opção padrão corresponde ao filtro Modo de cor com um valor Nome.

Para colorir os frames no gráfico em degradê de acordo com o consumo de uma função e os filhos dela, adicione um filtro Modo de cor com o valor Total. Se uma função for chamada por meio de várias pilhas de chamadas, a cor será determinada pelo consumo da métrica de todas as pilhas. Por exemplo, os frames main, busyloop e load estão em vermelho, foo1 em laranja, e baz, bar e foo2 em laranja claro. Este gráfico em degradê ilustra que foo1 consome mais tempo de CPU que foo2, mas menos que load:

Modo de cor "Total"

Para colorir os frames no gráfico em degradê de acordo com o consumo de métrica da função, mas não incluir o dos filhos dela, adicione um filtro Modo de cor com o valor Só para mim. Por exemplo, este filtro mostra que a função de load consome a maior parte do tempo da CPU:

Modo de cor "Só para mim"

A seguir