Como posso monitorar o uso de memória do Node.js?
javascript
node.js
memory
fsiaonma
fonte
fonte
Respostas:
node-memwatch : detecta e encontra vazamentos de memória no código Node.JS Confira este tutorial Rastreando Vazamentos de Memória em Node.js
fonte
O módulo de processo integrado possui um método
memoryUsage
que oferece uma visão sobre o uso de memória do processo Node.js. Aqui está um exemplo do Node v0.12.2 em um sistema de 64 bits:Neste exemplo simples, você pode ver que alocar uma matriz de 10 milhões de elementos consumidores de aproximadamente 80 MB (dê uma olhada em
heapUsed
).Se você olhar para o código-fonte do V8 (
Array::New
,Heap::AllocateRawFixedArray
,FixedArray::SizeFor
), então você vai ver que a memória usada por uma matriz é um valor fixo mais o comprimento multiplicado pelo tamanho de um ponteiro. O último é de 8 bytes em um sistema de 64 bits, o que confirma que a diferença de memória observada de 8 x 10 = 80 MB faz sentido.fonte
--expose-gc
para agc
função?--expose-gc
paraprocess.memoryUsage()
.gc()
(exigindo--expose-gc
) foi usado na resposta para acionar de forma determinística a coleta de lixo para tornar mais fácil ver o que osprocess.memoryUsage
relatórios.Além disso, se você quiser saber a memória global em vez do processo de nó ':
Veja a documentação
fonte
O memwatch original está essencialmente morto. Em vez disso, tente memwatch-next , que parece estar funcionando bem em versões modernas do Node.
fonte
No Linux / Unix (nota: Mac OS é um Unix), use
top
e pressione M ( Shift+ M) para classificar os processos por uso de memória.No Windows, use o Gerenciador de Tarefas.
fonte
Applications > Utilities
e você encontrará umActivity Monitor
aplicativo. Esse é o equivalente ao Gerenciador de Tarefas. O OS X também tem otop
comando.htop
vez de superior no Linux. É muito melhor.