Co zwracają wartości węzła.proces js.memoryUsage () oznacza?

Z oficjalnej dokumentacji ( Źródło):

Proces.memoryUsage()

Zwraca obiekt opisujący wykorzystanie pamięci procesu węzła mierzone w bajtach.

var util = require('util');

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

To wygeneruje:

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

HeapTotal i heapUsed odnoszą się do użycia pamięci V8.

Dokładnie co robić rss, heapTotal , and heapUsed stand for?

To może wydawać się banalne pytanie, ale byłem patrząc i nie mogłem znaleźć jasnej odpowiedzi do tej pory.
 103
Author: Sender, 2012-08-19

2 answers

Aby odpowiedzieć na to pytanie, trzeba najpierw zrozumieć schemat pamięci V8.

Uruchomiony program jest zawsze reprezentowany przez jakąś przestrzeń przydzieloną w pamięci. Przestrzeń ta nazywa się zbiorem Rezydentnym . V8 używa schematu podobnego do maszyny wirtualnej Javy i dzieli pamięć na segmenty:

  • kod : aktualnie wykonywany kod
  • stos : zawiera wszystkie typy wartości (podstawowe jak integer lub Boolean) ze wskaźnikami odwoływanie się do obiektów na stercie i wskaźników definiujących przepływ sterowania programem
  • Heap : segment pamięci przeznaczony do przechowywania typów referencyjnych, takich jak obiekty, ciągi znaków i zamknięcia. Tutaj wpisz opis obrazka

Teraz łatwo jest odpowiedzieć na pytanie:

  • rss : Resident Set Size
  • heapTotal : Całkowity rozmiar sterty
  • heapUsed : Heap faktycznie używane

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

 98
Author: Tim Qian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-27 08:54:30

RSS to resident Set size , część pamięci procesu przechowywana w pamięci RAM (w przeciwieństwie do przestrzeni wymiany lub części przechowywanej w systemie plików).

Sterta jest częścią pamięci, z której będą pochodzić nowo przydzielone obiekty (pomyśl o malloc W C lub new w JavaScript).

Więcej o stercie można przeczytać na Wikipedii .

 35
Author: Ray Toal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-19 01:05:37