1. ホーム
  2. node.js

[解決済み] node.js process.memoryUsage()の戻り値は何を意味するのでしょうか?

2022-05-31 09:03:44

質問

公式ドキュメントから ( ソース ):

process.memoryUsage()

Nodeプロセスのメモリ使用量を記述したオブジェクトを返します。 バイト単位で計測したオブジェクトを返します。

var util = require('util');

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

これで生成されます。

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

heapTotalとheapUsedは、V8のメモリ使用量を参照しています。

正確には rss , ヒープトータル そして ヒープ使用量 を意味するのでしょうか?

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

どのように解決するのですか?

この質問に答えるには、まずV8のMemory Schemeを理解する必要があります。

実行中のプログラムは、常にメモリ上に確保されたある空間を介して表現されます。この空間は 常駐セット . V8ではJava仮想マシンに似た方式で、メモリをセグメントに分割しています。

  • コード : 実際に実行されるコード
  • スタック ヒープ上のオブジェクトを参照するポインタや、プログラムの制御フローを定義するポインタなど、すべての値型(整数やブールなどのプリミティブ)が含まれます。
  • ヒープ : オブジェクト、文字列、クロージャのような参照型を格納するためのメモリセグメントです。

さて、質問に答えるのは簡単です。

  • rss : レジデントセットサイズ
  • ヒープトータル : ヒープの合計サイズ
  • ヒープ使用量 : 実際に使用されたヒープ

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