Como usar a ferramenta do criador de perfil de alocação

Meggin keney
Meggin Kearney

Use a ferramenta do criador de perfil de alocação para encontrar objetos que não estão sendo coletados da lixeira corretamente e continuam retendo memória.

Como a ferramenta funciona

O criador de perfil de alocação combina as informações detalhadas de snapshot do criador de perfil de heap com atualização e rastreamento incrementais do painel Linha do tempo. Assim como essas ferramentas, o rastreamento da alocação de heap dos objetos envolve iniciar uma gravação, executar uma sequência de ações e interromper a gravação para análise.

A ferramenta faz snapshots de heap periodicamente durante a gravação (a cada 50 ms) e um snapshot final ao final da gravação.

Criador de perfil de alocação

Ativar criador de perfil de alocação

Para começar a usar o criador de perfil de alocação:

  1. Verifique se você tem a versão mais recente do Chrome Canary.
  2. Abra as Ferramentas para desenvolvedores e clique no ícone de engrenagem no canto inferior direito.
  3. Agora, abra o painel do Profiler. Você verá um perfil chamado "Record Heap Allocations"

Gravar criador de perfil de alocações de heap

Ler um perfil de alocação de heap

O perfil de alocação de heap mostra onde os objetos estão sendo criados e identifica o caminho de retenção. No instantâneo abaixo, as barras na parte superior indicam quando novos objetos são encontrados na pilha.

A altura de cada barra corresponde ao tamanho dos objetos alocados recentemente, e a cor das barras indica se esses objetos ainda estão ativos ou não no instantâneo de heap final. As barras azuis indicam objetos que ainda estão ativos no final da linha do tempo. As barras cinza indicam objetos que foram alocados durante a linha do tempo, mas foram coletados como lixo:

Snapshot do criador de perfil de alocação

No snapshot abaixo, uma ação foi realizada 10 vezes. O programa de amostra armazena cinco objetos em cache. Portanto, as últimas cinco barras azuis são esperadas. Mas a barra azul mais à esquerda indica um possível problema.

Você pode usar os controles deslizantes na linha do tempo acima para aumentar o zoom nesse snapshot específico e ver os objetos alocados recentemente naquele ponto:

Aumentar o zoom no snapshot

Um clique em um objeto específico no heap mostra a árvore de retenção dele na parte inferior do snapshot do heap. Examinar o caminho de retenção para o objeto fornece informações suficientes para entender por que o objeto não foi coletado, e você pode fazer as mudanças necessárias no código para remover a referência desnecessária.

Conferir a alocação de memória por função

Também é possível conferir a alocação de memória por função JavaScript. Consulte Investigar a alocação de memória por função para saber mais.