2016-02-12 12 views
12

nodejsの--trace-gcオプションの出力について誰でも知ることができますか?nodejsガベージコレクションの出力

gcがどのように動作するかについての説明は必要ありません。そのための情報はたくさんありますが、--trace-gcの出力のみです。

私はいくつかのフィールドの意味を推測することができますが、私はいくつかの他のものについては考えていません。例えば

  • 「ステップ」meaining(それは、増分マークに&怠惰 スイープを関連させることができる)
  • サイズの
  • 、括弧内の数字の意味は何です書き込まれるヒープは合計ヒープですか? (追加老いも若きエリア)
  • ...

例:出力を作成し、ファイルを見てみると

[12994] 77042 ms: Scavenge 260.7 (298.1) -> 247.7 (298.1) MB, 9.4 ms [allocation failure]. 
[12994] 77188 ms: Scavenge 261.7 (298.1) -> 249.0 (300.1) MB, 7.4 ms [allocation failure]. 
[12994] 77391 ms: Scavenge 263.8 (301.1) -> 250.6 (302.1) MB, 8.1 ms [allocation failure]. 
[12994] 77511 ms: Scavenge 264.8 (302.1) -> 251.8 (304.1) MB, 7.4 ms [allocation failure]. 
[12994] 77839 ms: Scavenge 273.4 (304.1) -> 260.7 (305.1) MB, 8.3 ms (+ 55.7 ms in 201 steps since last GC) [allocation failure]. 
[12994] 78052 ms: Scavenge 274.3 (305.1) -> 261.9 (307.1) MB, 8.2 ms (+ 54.4 ms in 192 steps since last GC) [allocation failure]. 
[12994] 78907 ms: Scavenge 277.3 (308.1) -> 264.2 (309.1) MB, 10.1 ms (+ 51.5 ms in 196 steps since last GC) [allocation failure]. 
[12994] 80246 ms: Mark-sweep 272.2 (310.1) -> 82.9 (310.1) MB, 45.2 ms (+ 195.4 ms in 690 steps since start of marking, biggest step 1.2 ms) [GC interrupt] [GC in old space requested]. 
[12994] 80868 ms: Scavenge 99.3 (310.1) -> 85.5 (310.1) MB, 6.5 ms [allocation failure]. 
[12994] 81039 ms: Scavenge 100.2 (310.1) -> 86.8 (310.1) MB, 6.9 ms [allocation failure]. 
[12994] 81455 ms: Scavenge 102.2 (310.1) -> 88.8 (310.1) MB, 5.5 ms [allocation failure]. 

UPDATE

(mtthでsuggesteedとして)興味がある場合に備えてすべてのフィールドの説明を追加しています。

[12994] 77042 ms: Scavenge 260.7 (298.1) -> 247.7 (298.1) MB, 9.4 ms [allocation failure]. 
[pid] <time_since_start> : 
     <Phase> <heap_used_before (old+young)> (<allocated_heap_before>) -> 
       <heap_used_after (old+young)> (<allocated_heap_after>) MB, 
       <time_spent_gc> [<reason_of_gc>] 
古い宇宙GCS(フル)との間でマーキング増分があったとき、

さらに、それはこのように、掃気トレースに表示されます。

(+ <incremental_time_duration> ms in <incremental_marking_steps> steps since last GC) 

トレースが(フル)旧宇宙GCSに対応し、それをまた、最大のステップ時間を示します。

このトレースは、0.12.9をnodejsに対応し、そして、彼らはnodejs 4.2.2

答えて

6

私は見つけることができるドキュメントに最も近いthe source of the function that generates the outputある中で、少なくとも似ています。 gc-tracer.hのコメントを使用して、各エントリの意味を理解することができます。例えば:

  • は、括弧内の数は、OSから割り当てられたメモリの合計を表す

括弧内の数字の意味は何ですか(一つ前の合計のメモリでありますヒープ内のオブジェクトに使用されます)。

+0

私は各フィールドの意味で質問を更新します。どうもありがとう。 – richardtz

+0

良い説明 –

関連する問題