Modul Basismodul

Modulprofiler

Speicherprofiler-Modul

Anleitung:

1
var profiler = require('profiler');

Statische Funktion

saveSnapshot

Speichern Sie einen Heap-Snapshot gemäß dem angegebenen Namen

1
static profiler.saveSnapshot(String fname);

Aufrufparameter:

  • fname: String, Name des Heap-Snapshots

loadSnapshot

Lesen Sie einen Heap-Snapshot gemäß dem angegebenen Namen

1
static HeapSnapshot profiler.loadSnapshot(String fname);

Aufrufparameter:

  • fname: String, Name des Heap-Snapshots

Ergebnis zurückgeben:


takeSnapshot

Holen Sie sich den Heap-Snapshot des aktuellen Zeitknotens, der Heap-Snapshot zeichnet den Zustand des JS-Heaps im aktuellen Moment auf

1
static HeapSnapshot profiler.takeSnapshot();

Ergebnis zurückgeben:

  • HeapSnapshot, Kehren Sie zum abgerufenen Heap-Informations-Snapshot zurück

diff

Führen Sie die angegebene Funktion aus und vergleichen Sie die Änderungen des v8-Heaps vor und nach der Ausführung

1
static Object profiler.diff(Function test);

Aufrufparameter:

  • test: Funktion bei gegebener zu testender Funktion

Ergebnis zurückgeben:

  • Object, Ergebnis des Vergleichs zurückgeben

start

Starten Sie ein laufendes Status-Sampling-Log

1 2 3
static Timer profiler.start(String fname, Integer time = 60000, Integer interval = 100);

Aufrufparameter:

  • fname: String, angegebener Name der Protokollspeicherdatei
  • time: Integer, geben Sie die Abtastzeit an, die Standardeinstellung ist 1 Minute
  • interval: Integer, geben Sie die Intervallzeit an, der Standard ist 100 Millisekunden

Ergebnis zurückgeben:

  • Timer, Kehren Sie zum Probenahme-Timer zurück, Sie können die Probenahme im Voraus durch die Löschmethode stoppen

Konstante

Node_Hidden

Versteckte Knoten, die herausgefiltert werden können, wenn sie dem Benutzer angezeigt werden

1
const profiler.Node_Hidden = 0;

Node_Array

Array

1
const profiler.Node_Array = 1;

Node_String

Zeichenfolge

1
const profiler.Node_String = 2;

Node_Object

JS-Objekte (außer Strings und Arrays)

1
const profiler.Node_Object = 3;

Node_Code

Kompilierter Code

1
const profiler.Node_Code = 4;

Node_Closure

Funktionsverschluss

1
const profiler.Node_Closure = 5;

Node_RegExp

Regulären Ausdruck

1
const profiler.Node_RegExp = 6;

Node_HeapNumber

Sortierte Zahlen im Stapel

1
const profiler.Node_HeapNumber = 7;

Node_Native

Native Objekte (nicht auf dem v8-Heap)

1
const profiler.Node_Native = 8;

Node_Synthetic

Synthetisches Objekt

1
const profiler.Node_Synthetic = 9;

Node_ConsString

Verkettete Zeichenfolge

1
const profiler.Node_ConsString = 10;

Node_SlicedString

Saite teilen

1
const profiler.Node_SlicedString = 11;

Node_Symbol

Symbol (ES6)

1
const profiler.Node_Symbol = 12;

Node_SimdValue

Sortierter SIMD-Wert im Heap (ES7)

1
const profiler.Node_SimdValue = 13;

Edge_ContextVariable

Variablen in der Funktion

1
const profiler.Edge_ContextVariable = 0;

Edge_Element

Elemente im Array

1
const profiler.Edge_Element = 1;

Edge_Property

Eigenschaften des benannten Objekts

1
const profiler.Edge_Property = 2;

Edge_Internal

Unzugänglicher JS-Link

1
const profiler.Edge_Internal = 3;

Edge_Hidden

Zeigen Sie auf den Knoten, an dem die Raumgröße im Voraus berechnet werden muss

1
const profiler.Edge_Hidden = 4;

Edge_Shortcut

Zeigen Sie auf einen Knoten, dessen Raumgröße nicht im Voraus berechnet werden kann

1
const profiler.Edge_Shortcut = 5;

Edge_Weak

Eine schwache Referenz (von GC ignoriert)

1
const profiler.Edge_Weak = 6;