¿Qué hacen los valores de retorno de nodo.proceso js.memoryUsage() representan?
De la documentación oficial (fuente):
Proceso.MemoryUsage()
Devuelve un objeto que describe el uso de memoria del proceso Node 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.
Exactamente qué hacer rss, heapTotal, y heapUsed representan?
Puede parecer una pregunta trivial, pero he estado buscando y no pude encontrar una respuesta clara hasta ahora.
2 answers
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 algún espacio asignado en la memoria. Este espacio se llama Conjunto residente . V8 utiliza un esquema similar a la Máquina Virtual Java y divide la memoria en segmentos:
- Code : el código real que se está ejecutando
- Stack : contiene todos los tipos de valores (primitivos como integer o booleano) con punteros referencia de 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 a la pregunta:
- rss : Tamaño del Conjunto residente
- heapTotal : Tamaño total del Montón
- heapUsed : Heap actually Used
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-27 08:54:30
RSS es el tamaño del conjunto residente , la porción de la memoria del proceso mantenida en RAM (a diferencia del espacio de intercambio o la parte mantenida en el sistema de archivos).
El montón es la porción de memoria de la que provendrán los objetos recién asignados (piense en malloc
en C, o new
en JavaScript).
Puedes leer más sobre el montón en Wikipedia.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-19 01:05:37