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
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 .