Como comparar perfis

Com o Stackdriver Profiler, é possível comparar visualmente dois perfis de tipos iguais e coletados do mesmo serviço em um projeto. É possível comparar perfis com diferenças em:

  • Horário de término: o serviço é executado mais rapidamente em determinados horários? Houve uma melhora ou piora gradual ao longo do tempo?
  • Zonas: o serviço é executado mais rapidamente em algumas zonas do que em outras?
  • Versões de serviço: as versões mais recentes são muito diferentes das antigas? Como?
  • Peso: como os perfis capturados durante períodos de alto consumo diferem dos perfis comuns?

Configurar uma comparação

Ao configurar uma comparação, você especifica os parâmetros para um perfil original e um perfil comparado. Esses dois perfis compartilham todos os parâmetros de configuração, exceto o definido pelo campo Comparar com.

Para configurar uma comparação, faça o seguinte:

  1. Defina o tipo de comparação selecionando uma opção no menu Comparar com:

    Selecionar uma dessas opções resulta em um novo campo de configuração. O nome do campo tem a palavra Comparado e o tipo de comparação. Por exemplo, se você selecionar Versão, um campo Versão comparada será exibido ao lado do campo Comparar com.

  2. Especifique o perfil comparado selecionando uma opção no menu Comparado.

Por exemplo, a captura de tela ilustra as configurações para comparar duas versões de hotapp-servce:

Comparação de dois perfis de tempo de CPU.

As configurações para os campos a seguir se aplicam ao perfil original e ao perfil comparado:

  • Período: 7 days
  • Horário de término: 3/25/19, 10:20 AM
  • Serviço: hotapp-service
  • Tipo de perfil: CPU time
  • Zona: All zones
  • Peso: All

Para o perfil original, a Versão é skew_100. Para o perfil comparado, a Versão é skew_50.

Noções básicas sobre gráficos de comparação

O gráfico resultante de uma comparação é diferente do gráfico padrão das seguintes maneiras:

  • Significado das cores
  • Significado do tamanho do bloco de função
  • Informações métricas exibidas pela dica
  • Conteúdo da lista de foco

Significado das cores

Em um gráfico em degradê padrão, você pode especificar o modo de cor do gráfico. Para mais detalhes, Consulte Modo de cor.

Em um gráfico em degradê de comparação, as cores representam a diferença entre o consumo métrico total da função no perfil original e no perfil comparado:

  • Cinza: há pouca ou nenhuma diferença.
  • Vermelho: a diferença é positiva.
  • Azul: a diferença é negativa.

Quanto maior for a diferença nos valores de consumo entre os dois perfis comparados, mais saturada será a cor.

Por exemplo, na figura anterior, a pilha de chamadas foo1 é azul, o que indica que o perfil original consumiu menos CPU do que o perfil comparado. O frame foo1 tem um azul mais brilhante do que os frames filhos bar, o que indica que há uma diferença maior no consumo métrico para a função foo1 que para as funções bar. Por fim, a pilha de chamadas foo2 é vermelha, o que indica que o perfil original consumiu mais CPU do que o perfil comparado.

Significado do tamanho do bloco

Em um gráfico em degradê padrão, o tamanho dos blocos de função ilustra o consumo relativo da métrica analisada.

Em um gráfico em degradê de comparação, o tamanho dos blocos de função ilustra o consumo médio relativo da métrica analisada. Ao calcular a média dos valores dos dois perfis, um bloco que existe apenas em um ainda aparece no gráfico de comparação com a metade do tamanho de antes da comparação.

Valores de métrica exibidos

Em um gráfico em degradê padrão, as métricas exibidas pela dica são compostas de duas cláusulas: total e própria. Em ambas as cláusulas, o valor absoluto é exibido junto com uma porcentagem:

     total: 1.01 s, 28.8%; self: 1.01 s, 28.8%

Em um gráfico em degradê de comparação, como dois perfis estão sendo comparados, a dica exibe os valores de métrica para os dois perfis:

Valores exibidos em uma comparação de perfis.

Conforme mostrado na figura, as cláusulas total e própria têm o formato a seguir:

     [ABS_ORIGINAL] vs. [ABS_COMPARED] ([ABS_DIFF]), [REL_ORIGINAL] vs. [REL_COMPARED] ([REL_DIFF])

Nesta expressão, ABS_ significa o valor absoluto e REL_ significa a porcentagem relativa. Portanto, [ABS_ORIGINAL] é o valor absoluto do perfil original e [ABS_COMPARED] é o valor absoluto do perfil comparado. O campo [ABS_DIFF], definido como [ABS_ORIGINAL] - [ABS_COMPARED], é a diferença absoluta entre os dois perfis. Quando a diferença absoluta é zero, nenhuma alteração é exibida.

A porcentagem é computada para cada perfil como a proporção do valor bruto de uma função para o valor bruto da raiz. Por exemplo, se o perfil foo1 original levou 1,58 segundo e root levou 3,17 segundos, então [REL_ORIGINAL] é cerca de 50%. Um cálculo semelhante é realizado para o perfil comparado. Por fim, o campo [REL_DIFF], definido como a diferença entre essas porcentagens, é a diferença relativa entre os dois perfis. Quando essa diferença é zero, nenhuma alteração é exibida.

No exemplo anterior, a cláusula total mostra que a função foo1 no perfil original é executada em 1,59 segundo. A diferença absoluta de -515,32 milissegundos indica que foo1 é executada cerca de 515 milissegundos mais rápido no perfil original em comparação com a mesma função no perfil comparado:

     total: 1.59 s vs. 2.11 s (-515.32 ms), 49.9% vs 66% (-16.6%)

Incluir foco em uma comparação

Em um gráfico em degradê padrão, cada linha na lista Foco contém um nome de função, os valores de consumo próprio e total da métrica e a contagem de pilhas de chamadas nessa função.

No gráfico em degradê de comparação, cada linha na lista Foco contém um nome de função, os valores próprios de consumo de métrica e os totais e a contagem de pilhas de chamada nessa função para o perfil original. Para um gráfico em degradê de comparação, a lista de foco também inclui duas colunas denominadas Dif, um botão chamado Dif relativa e um botão Dif absoluta. Para mais informações sobre a diferença relativa e a diferença absoluta, acesse Valores de métrica exibidos.

Por padrão, a cor do gráfico em degradê de comparação é determinada pelas diferenças absolutas entre os perfis original e comparado. Por padrão, a lista de foco exibe as diferenças relativas entre os dois perfis que estão sendo comparados:

Lista de focos mostrando a diferença relativa entre dois perfis.

A tabela no exemplo mostra que a função foo1 leva cerca de 1,59 segundo para ser executada no perfil original. O tempo de 1,59 segundo corresponde a cerca de 49,9% do tempo de execução. A coluna Dif contém o valor de -16.6%. Esse valor indica que foo1 leva cerca de 66% do tempo de execução para o perfil comparado.

Para ver a diferença absoluta entre os valores da métrica, clique em Dif absoluta.

Independentemente de você ter um gráfico em degradê padrão ou de comparação, é possível classificar as linhas da tabela na ordem crescente ou decrescente selecionando um elemento de cabeçalho da tabela.

Desativar o modo de comparação

Para desativar o modo de comparação, defina o campo Comparar com para Nenhum.