nodejs node memoryusage entorno node.js v8

entorno - ¿Qué significan los valores de retorno de node.js process.memoryUsage()?



variables de entorno node js windows 10 (2)

Para responder a esta pregunta, primero hay que entender el esquema de memoria de V8.

Un programa en ejecución siempre se representa a través de un espacio asignado en la memoria. Este espacio se llama Conjunto Residente . V8 usa un esquema similar a la Máquina Virtual de Java y divide la memoria en segmentos:

  • Código : el código real que se está ejecutando
  • Pila : contiene todos los tipos de valor (primitivas como entero o booleano) con punteros que hacen referencia a objetos en el montón y punteros que definen el flujo de control del programa
  • Heap : un segmento de memoria dedicado a almacenar tipos de referencia como objetos, cadenas y cierres.

Ahora es fácil responder la pregunta:

  • rss : Tamaño del conjunto residente
  • HeapTotal : Tamaño total del montón
  • HeapUsed : Heap realmente usado

Ref : http://apmblog.dynatrace.com/2015/11/04/understanding-garbage-collection-and-hunting-memory-leaks-in-node-js/

De la documentación oficial ( source ):

process.memoryUsage ()

Devuelve un objeto que describe el uso de memoria del proceso de nodo medido en bytes.

var util = require(''util''); console.log(util.inspect(process.memoryUsage()));

Esto generará:

{ rss: 4935680, heapTotal: 1826816, heapUsed: 650472 }

HeapTotal y HeapUsed se refieren al uso de memoria de V8.

¿Qué representan exactamente rss , heapTotal y heapUsed ?

Puede parecer una pregunta trivial, pero he estado buscando y hasta ahora no he podido encontrar una respuesta clara.


RSS es el tamaño del conjunto residente , la parte de la memoria del proceso almacenada en la RAM (a diferencia del espacio de intercambio o la parte almacenada en el sistema de archivos).

El montón es la porción de memoria de la que vendrán los objetos recién asignados (piense en malloc en C, o new en JavaScript).

Puede leer más sobre el montón en Wikipedia .