Gerenciamento de memória
Pilha, heap e coletor de lixo, e de onde vêm os vazamentos de memória em linguagens gerenciadas.
Gerenciamento de memória é como um programa reserva e libera a memória que usa. Em Node, Python, Go, Java e C#, um coletor de lixo libera automaticamente o que não é mais usado.
Mesmo com coletor de lixo, serviços vazam memória e morrem por falta dela. Em containers, isso aparece como reinícios misteriosos e lentidão antes de cada queda.
- O coletor só libera o que nenhuma parte do programa ainda referencia.
- Vazamentos em linguagens gerenciadas são referências esquecidas: caches sem limite, listas globais, ouvintes.
- O coletor precisa saber o limite de memória do container para trabalhar a tempo.
- Ferramentas de captura do heap mostram o que está ocupando a memória.