ExpertiDict

JavaScript · Avançado · Português · Técnico

vazamento de memória

/vazaˈmẽtu dʒi meˈmɔɾia/substantivo

Situação em que a memória de objetos que não serão mais usados continua alcançável e nunca é liberada. Em JavaScript vem de referências esquecidas, não da falta de free.

Onde usar

Aparece quando o uso de memória de um servidor ou de uma aba só cresce. Causas típicas: cache sem limite, timers e listeners nunca removidos e closures que retêm objetos grandes.

Em código

const cache = new Map();
function buscar(id) {
  if (!cache.has(id)) {
    cache.set(id, new Array(1e5).fill(id));
  }
  return cache.get(id); // nunca é limpo
}

Exemplos

Achamos um vazamento de memória: o listener nunca era removido.

O cache sem limite causou um vazamento de memória no servidor.

Cuidado

Achar que a coleta automática impede vazamentos, quando ela só libera o que ficou inalcançável.

Sinônimos

memory leak

Veja também

Todos os termos de JavaScript