Ktoś wie, gdzie mogę przeczytać o wyjściu opcji --trace-gc w nodejs?nodejs wywóz śmieci wyjście
Nie proszę o wyjaśnienie, w jaki sposób działa Gc, ponieważ istnieje wiele informacji na ten temat, tylko dla wyjścia --trace-gc.
Mogę odgadnąć, co jest znaczeniem niektórych pól, ale nie mam pojęcia o innych.
Na przykład:
- jakie jest znaczenie liczby w nawiasach,
- „kroki” meaining (może to być związane z bieżących znakiem & leniwe zamiatać)
- wielkość sterty, które są napisane, to całkowita kupa? (dodawanie młode i stare obszary)
- ...
Przykład:
[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
Patrząc na pliku, który tworzy wyjście (jak suggesteed przez mtth) , Dodaję wyjaśnienie wszystkich pól na wypadek, gdyby ktoś był zainteresowany:
[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>]
Dodatkowo, gdy nie było żadnego oznakowania między starymi GCS kosmicznych (pełne) przyrostowe, to pojawia się w ślad wychwytywania, tak:
(+ <incremental_time_duration> ms in <incremental_marking_steps> steps since last GC)
Kiedy ślad odpowiada starej GCS kosmicznych (pełna nazwa), to pokazuje również największy czas trwania kroku.
Te ślady odpowiadają nodejs 0.12.9, i wyglądają podobnie, przynajmniej w nodejs 4.2.2
więcej niż wystarczająco, zaktualizuję pytanie o znaczenie każdego pola. wielkie dzięki. – richardtz
Dobre wyjaśnienie –