A partir da documentação oficial ( fonte ):
process.memoryUsage ()
Retorna um objeto que descreve o uso da memória do processo do Nó medido em bytes.
var util = require('util'); console.log(util.inspect(process.memoryUsage()));
Isso irá gerar:
{ rss: 4935680, heapTotal: 1826816, heapUsed: 650472 }
heapTotal e heapUsed referem-se ao uso de memória da V8.
Exatamente o que rss , heapTotal e heapUsed representam?
Pode parecer uma pergunta trivial, mas tenho procurado e não consegui encontrar uma resposta clara até agora.
RSS é o tamanho do conjunto residente , a parte da memória do processo mantida na RAM (em oposição ao espaço de troca ou a parte mantida no sistema de arquivos).
A pilha é a parte da memória da qual os objetos recém-alocados virão (pense
malloc
em C ounew
em JavaScript).Você pode ler mais sobre a pilha na Wikipedia .
fonte
heapTotal
eheapUsed
?heapTotal
é o espaço total de heap alocado pelo mecanismo V8 subjacente, para alocações dinâmicas.heapUsed
é a memória usada dentro desse espaço total. Ambos são gerenciados pelo V8 e estão sujeitos a aumentar / diminuir sempre que necessário.A duplicação do Node.js descreve da seguinte maneira:
Todos os valores mencionados são expressos em bytes. Portanto, se você quiser imprimi-los, provavelmente precisará redimensioná-los para o MB:
Isso lhe dará uma saída como:
fonte
Vamos fazer isso com um exemplo
O exemplo a seguir irá mostrar como o aumento no uso de memória vai realmente aumentar a
rss
eheapTotal
Executando A descrição acima, você terá algo assim:
Isso mostra claramente como o uso de variável e o incremento contínuo do espaço necessário aumentam o heapTotal e, correspondentemente, o tamanho do conjunto residente (
rss
)fonte