151

公式ドキュメントから ( source ):

process.memoryUsage()

ノード プロセスのメモリ使用量をバイト単位で表すオブジェクトを返します。

var util = require('util');

console.log(util.inspect(process.memoryUsage()));

これにより、次が生成されます。

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

heapTotal と heapUsed は、V8 のメモリ使用量を示します。

rssheapTotal、およびheapUsedは正確には何の略ですか?

些細な質問のように思えるかもしれませんが、私は探していて、これまで明確な答えを見つけることができませんでした.

4

4 に答える 4

203

この質問に答えるには、まず V8 のメモリ スキームを理解する必要があります。

実行中のプログラムは、常にメモリ内に割り当てられたスペースを通じて表されます。このスペースはResident Setと呼ばれます。V8 は Java 仮想マシンと同様のスキームを使用し、メモリをセグメントに分割します。

  • Code : 実行中の実際のコード
  • Stack : ヒープ上のオブジェクトを参照するポインターと、プログラムの制御フローを定義するポインターを含むすべての値の型 (整数やブール値などのプリミティブ) が含まれます。
  • Heap : オブジェクト、文字列、クロージャなどの参照型を格納する専用のメモリ セグメント。 ここに画像の説明を入力

これで、次の質問に簡単に答えることができます。

  • rss : 常駐セットサイズ
  • heapTotal : ヒープの合計サイズ
  • heapUsed : 実際に使用されたヒープ

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

于 2016-06-27T08:54:30.130 に答える
40

RSS常駐セット サイズであり、RAM に保持されるプロセスのメモリの一部です (スワップ スペースまたはファイルシステムに保持される部分とは対照的です)。

ヒープは、新しく割り当てられたオブジェクトの取得元となるメモリの一部です ( mallocC やnewJavaScriptで考えてください)。

ウィキペディアでヒープの詳細を読むことができます。

于 2012-08-19T01:05:37.967 に答える