De la documentation officielle ( source ):
process.memoryUsage ()
Renvoie un objet décrivant l'utilisation de la mémoire du processus Node mesurée en octets.
var util = require('util'); console.log(util.inspect(process.memoryUsage()));
Cela générera:
{ rss: 4935680, heapTotal: 1826816, heapUsed: 650472 }
heapTotal et heapUsed font référence à l'utilisation de la mémoire du V8.
Que signifient exactement rss , heapTotal et heapUsed ?
Cela peut sembler une question triviale, mais j'ai cherché et je n'ai pas pu trouver de réponse claire jusqu'à présent.
RSS est la taille de l'ensemble résident , la partie de la mémoire du processus conservée dans la RAM (par opposition à l'espace de swap ou à la partie contenue dans le système de fichiers).
Le tas est la partie de la mémoire à partir de laquelle les objets nouvellement alloués viendront (pensez
malloc
à C ounew
à JavaScript).Vous pouvez en savoir plus sur le tas sur Wikipedia .
la source
heapTotal
etheapUsed
?heapTotal
est l'espace de tas total alloué par le moteur V8 sous-jacent, pour les allocations dynamiques.heapUsed
est la mémoire utilisée dans cet espace total. Les deux sont gérés par V8 et sont susceptibles de croître / rétrécir chaque fois que nécessaire.La doumentation Node.js le décrit comme suit:
Toutes les valeurs mentionnées sont exprimées en octets. Donc, si vous souhaitez simplement les imprimer, vous souhaitez probablement les redimensionner en Mo:
Cela vous donnera une sortie comme:
la source
Faisons cela avec un exemple
L'exemple suivant vous montre comment l'augmentation de l'utilisation de la mémoire augmente effectivement la
rss
etheapTotal
Exécuter Ce qui précède vous donnera quelque chose comme ceci:
Cela vous montre clairement comment l'utilisation de la variable et l'incrémentation continue de l'espace requis par celle-ci augmente le heapTotal et en conséquence la taille de l'ensemble de résidents (
rss
)la source