Pular para o conteúdo

Encontrar vazamentos de memória

Repita a navegação e identifique objetos mantidos na memória ao voltar à página inicial. Examine o acúmulo observado no navegador.

Fragmento do relatório

Veja qual grupo cresce entre as iterações

Exemplo ilustrativo de navegação e retorno. Os valores explicam o relatório e não são resultados do seu site.

Mudança de rota

/catalog → /product → /catalog × 5

A navegação terminou, mas os objetos de estado da página anterior continuam na memória. A quantidade aumenta a cada repetição. Investigue quais referências os retêm.

Objetos dos modelos de visualização de rota
Antes → depois
846 → 1451
Delta
+605
Delta / iteração
+121
Set<observerTarget>
Antes → depois
34 → 74
Delta
+40
Delta / iteração
+8
memória nativa
Antes → depois
41.2 → 54.7 MB
Delta
+13.5 MB
Delta / iteração
+2.7 MB

Dados ilustrativos para explicar o relatório. Os resultados da página aparecem após a análise.

Como funciona

Repetimos um cenário e contamos o delta entre as passagens

Cenário

Escolhemos links da página

O scanner encontra até três links internos visíveis. Repete cinco vezes cada navegação e o retorno à página de origem.

Delta

Comparamos o uso de memória

Após uma passagem de aquecimento, medimos a memória retida depois das navegações repetidas. Isso revela um acúmulo que não aparece no primeiro carregamento.

Grupos de crescimento

Mostramos o que se acumula

O relatório lista coleções, ouvintes de eventos, nós DOM e tipos de objetos que crescem. Para coleções, também mostra os pontos de alteração no código, quando disponíveis.

Módulos de análise

O que entra no relatório de vazamento de memória

Cenário

Cenário verificado

O relatório armazena a URL, o caminho do usuário verificado, a contagem de iterações e o sinalizador de vazamento para que a descoberta possa ser reproduzida.

vazamentoURLiterações
Delta

Crescimento total de memória

Compare o crescimento total e por iteração na mesma navegação. O acúmulo é um motivo para examinar objetos retidos. Caches intencionais e o estado da aplicação também podem manter memória em uso.

delta totalpor iteraçãoestatísticas de memória
Coleções

Array, Map, Set, Object

As coleções em crescimento são listadas separadamente: tamanho antes e depois, delta, delta por iteração e stack traces onde a coleção mudou.

MapObjectrastreamento de pilha
Ouvintes

Ouvintes de eventos e nós

O relatório mostra as contagens de ouvintes antes e depois do cenário, o delta resultante e os nós de ouvintes com vazamento onde as assinaturas crescem.

antes / depoisdelta de nóspor iter
DOM

Crescimento de nós do DOM

O relatório mostra o crescimento de nós do DOM e descrições de nós com vazamento, facilitando a identificação de DOM desanexado ou inicialização repetida da interface.

contagem de nósdescriptiondesanexado
Objetos do heap

Tipos de objetos do heap

Para tipos de objetos em crescimento, o relatório inclui delta de contagem, delta de tamanho, delta de tamanho retido e valores por iteração. Quando existem dados de ambiente, o heap total, nativo e V8 são mostrados separadamente.

delta de contagemdelta de tamanhoretido
Perguntas frequentes

Perguntas frequentes sobre vazamentos de memória

Respostas curtas sobre delta por iteração, coleções em crescimento, listeners, nós do DOM e o que fazer após o relatório.

Todo aumento de memória é um vazamento?
Não. Uma aplicação pode manter dados de que ainda precisa. O scanner busca acúmulo ao repetir uma navegação, mas não conhece as necessidades da aplicação. Verifique o que retém os objetos e se deveriam ser liberados no retorno.
O que são nós DOM desconectados?
São elementos removidos do documento, mas mantidos na memória por referências JavaScript. Por exemplo, pode restar uma referência a um diálogo fechado. As descrições dos nós ajudam a limitar a busca; verifique no código a referência que os retém.
A verificação consegue encontrar vazamentos de event listeners?
Sim. O relatório mostra as contagens de listeners antes e depois, o delta total, o delta por iteração e os nós de listeners com vazamento, com o delta de contagem de nós. Isso ajuda a distinguir uma assinatura pontual de handlers adicionados a cada repetição.
Quais páginas e ações o scanner verifica?
A verificação é voltada a SPAs com navegação sem recarregamento completo. O scanner escolhe até três links internos visíveis e repete a navegação de ida e volta. Formulários, buscas e abertura de diálogos não são verificados separadamente. Sem links adequados, a verificação falha; isso não significa ausência de vazamentos.
O que devo fazer após encontrar um vazamento?
Repita a navegação indicada e encontre os objetos retidos no retorno. Revise alterações nas coleções, remoção de ouvintes e referências a elementos removidos. Após corrigir, repita a verificação e compare a mesma navegação.
Cookies

Usamos cookies

Usamos cookies para proporcionar uma melhor experiência em nosso site. Saiba mais sobre como usamos cookies em nossa política de privacidade.