¿Cómo puedo monitorear el uso de memoria de Node.js?
javascript
node.js
memory
fsiaonma
fuente
fuente
Respuestas:
node-memwatch : detecta y encuentra fugas de memoria en el código Node.JS. Consulte este tutorial Seguimiento de pérdidas de memoria en Node.js
fuente
El módulo de proceso integrado tiene un método
memoryUsage
que ofrece información sobre el uso de memoria del proceso actual de Node.js. Aquí hay un ejemplo de Node v0.12.2 en un sistema de 64 bits:En este ejemplo simple, puede ver que la asignación de una matriz de 10 millones de elementos consume aproximadamente 80 MB (eche un vistazo
heapUsed
).Si nos fijamos en el código fuente de V8 (
Array::New
,Heap::AllocateRawFixedArray
,FixedArray::SizeFor
), entonces se verá que la memoria utilizada por un array es un valor fijo más la longitud multiplicada por el tamaño de un puntero. Este último es de 8 bytes en un sistema de 64 bits, lo que confirma que la diferencia de memoria observada de 8 x 10 = 80 MB tiene sentido.fuente
--expose-gc
para lagc
función?--expose-gc
paraprocess.memoryUsage()
.gc()
(require--expose-gc
) se usó en la respuesta para activar de manera determinista la recolección de basura para que sea más fácil ver lo queprocess.memoryUsage
informan.Además, si desea conocer la memoria global en lugar del proceso de nodo ':
Ver documentación
fuente
El memwatch original está esencialmente muerto. Trate memwatch-próxima vez, que parece estar funcionando bien en las versiones modernas de Nodo.
fuente
En Linux / Unix (nota: Mac OS es un Unix) use
top
y presione M (Shift + M) para ordenar los procesos por uso de memoria.En Windows, use el Administrador de tareas.
fuente
Applications > Utilities
y encontrará unaActivity Monitor
aplicación. Ese es el equivalente al Administrador de tareas. OS X también tiene eltop
comando.htop
lugar de top en Linux. Es mucho mejor.