Cenário: consumo de memória cresce sem parar
Pergunta
Um serviço Node.js vai consumindo cada vez mais memória ao longo de horas até reiniciar por OOM. Como você investiga um memory leak?
Resposta esperada
Confirmar que é leak e não só cache/carga crescente: o heap sobe monotonicamente mesmo com carga estável e não volta após GC. Tirar heap snapshots em dois momentos distantes e comparar (o 'diff' mostra que tipo de objeto acumulou — retained size). Suspeitos comuns em Node: listeners de evento adicionados e nunca removidos (`emitter.on` num loop), closures que capturam objetos grandes presas em caches/mapas sem TTL nem limite (use `Map` com eviction ou `WeakMap`), timers (`setInterval`) não limpos, e globais que só crescem (um array de log em memória). Correlacionar o crescimento com um endpoint ou job específico ajudando a isolar. Depois de corrigir, validar com um teste de carga longo observando o heap estabilizar.
Por que perguntam isso
Cenário sênior. Termos que indicam experiência: 'heap snapshot diff', 'retained size', 'WeakMap', listeners não removidos.