JavaScript · Avançado · Português · Técnico
vazamento de memória
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