Comment puis-je surveiller l'utilisation de la mémoire de Node.js?
javascript
node.js
memory
fsiaonma
la source
la source
Réponses:
node-memwatch : détecte et trouve les fuites de mémoire dans le code Node.JS. Consultez ce tutoriel sur le suivi des fuites de mémoire dans Node.js
la source
Le module de processus intégré a une méthode
memoryUsage
qui offre un aperçu de l'utilisation de la mémoire du processus Node.js. actuel. Voici un exemple de Node v0.12.2 sur un système 64 bits:Dans cet exemple simple, vous pouvez voir que l'allocation d'un tableau de 10 millions d'éléments consomme environ 80 Mo (jetez un œil à
heapUsed
).Si vous regardez le code source de V8 (
Array::New
,Heap::AllocateRawFixedArray
,FixedArray::SizeFor
), vous verrez que la mémoire utilisée par un tableau est une valeur fixe plus la longueur multipliée par la taille d'un pointeur. Ce dernier est de 8 octets sur un système 64 bits, ce qui confirme qu'une différence de mémoire observée de 8 x 10 = 80 Mo a du sens.la source
--expose-gc
pour lagc
fonction?--expose-gc
pourprocess.memoryUsage()
.gc()
(Requérant--expose-gc
) a été utilisé dans la réponse pour déclencher de manière déterministe le garbage collection afin de faciliter la visualisation de ce que lesprocess.memoryUsage
rapports.Aussi, si vous souhaitez connaître la mémoire globale plutôt que le processus de nœud ':
Voir la documentation
la source
Le memwatch original est essentiellement mort. Essayez plutôt memwatch-next , qui semble bien fonctionner sur les versions modernes de Node.
la source
Sous Linux / Unix (note: Mac OS est un Unix) utilisez
top
et appuyez sur M ( Shift+ M) pour trier les processus par utilisation de la mémoire.Sous Windows, utilisez le gestionnaire de tâches.
la source
Applications > Utilities
et vous trouverez uneActivity Monitor
application. Celui-ci est l'équivalent du gestionnaire de tâches. OS X a également latop
commande.htop
au lieu de top sur Linux. C'est beaucoup mieux.