Modul-Profiler
Speicher-Profiler-Modul
Anleitung:
1var profiler = require('profiler');
statische Funktion
getHeapCodeStatistics
Holen Sie sich = Statistiken über den Code im v8-Heap und seine Metadaten
1static Object profiler.getHeapCodeStatistics();
Rückgabeergebnisse:
- Object, gibt statistische Informationen zu Metadaten zurück
getHeapSpaceStatistics
Erhalten Sie detaillierte Informationen zur Nutzung des v8-Heapspeichers
1static Array profiler.getHeapSpaceStatistics();
Rückgabeergebnisse:
- Array, gibt die detaillierte Nutzung des Heap-Speichers zurück
getHeapStatistics
Rufen Sie v8-Heap-Speichernutzungsstatistiken ab
1static Object profiler.getHeapStatistics();
Rückgabeergebnisse:
- Object, gibt Statistiken zur Heap-Speichernutzung zurück
saveSnapshot
Speichern Sie einen Heap-Snapshot unter dem angegebenen Namen
1static profiler.saveSnapshot(String fname);
Aufrufparameter:
- fname: String, Name des Heap-Snapshots
loadSnapshot
Liest einen Heap-Snapshot basierend auf dem angegebenen Namen
1static HeapSnapshot profiler.loadSnapshot(String fname);
Aufrufparameter:
- fname: String, Name des Heap-Snapshots
Rückgabeergebnisse:
- HeapSnapshot, gibt den gelesenen Heap-Snapshot zurück
takeSnapshot
Erhalten Sie den Heap-Snapshot des aktuellen Zeitknotens. Der Heap-Snapshot zeichnet den Status des JS-Heaps zum aktuellen Zeitpunkt auf.
1static HeapSnapshot profiler.takeSnapshot();
Rückgabeergebnisse:
- HeapSnapshot, gibt den erhaltenen Heap-Informations-Snapshot zurück
diff
Führen Sie die angegebene Funktion aus und vergleichen Sie die Änderungen im v8-Heap vor und nach der Ausführung
1static Object profiler.diff(Function test);
Aufrufparameter:
- test: Funktion unter Berücksichtigung der zu testenden Funktion
Rückgabeergebnisse:
- Object, gibt das Vergleichsergebnis zurück
start
Starten Sie ein laufendes Status-Sampling-Protokoll
1
2
3static Timer profiler.start(String fname,
Integer time = 60000,
Integer interval = 100);
Aufrufparameter:
- fname: Zeichenfolge, angegebener Name der Protokollspeicherdatei
- time: Ganzzahl, gibt die Abtastzeit an, der Standardwert ist 1 Minute
- interval: Ganzzahl, geben Sie die Intervallzeit an, der Standardwert ist 100 Millisekunden
Rückgabeergebnisse:
- Timer, gibt den Probenahme-Timer zurück, Sie können die Probenahme durch die Löschmethode vorzeitig stoppen
Konstante
Node_Hidden
Versteckte Knoten, die herausgefiltert werden können, wenn sie dem Benutzer angezeigt werden
1const profiler.Node_Hidden = 0;
Node_Array
Array
1const profiler.Node_Array = 1;
Node_String
Zeichenfolge
1const profiler.Node_String = 2;
Node_Object
JS-Objekte (außer Strings und Arrays)
1const profiler.Node_Object = 3;
Node_Code
kompilierter Code
1const profiler.Node_Code = 4;
Node_Closure
Funktionsschluss
1const profiler.Node_Closure = 5;
Node_RegExp
regulären Ausdruck
1const profiler.Node_RegExp = 6;
Node_HeapNumber
Sortierte Zahlen in einem Haufen
1const profiler.Node_HeapNumber = 7;
Node_Native
Natives Objekt (Nicht-v8-Heap)
1const profiler.Node_Native = 8;
Node_Synthetic
Synthetisches Objekt
1const profiler.Node_Synthetic = 9;
Node_ConsString
verkettete Zeichenfolgen
1const profiler.Node_ConsString = 10;
Node_SlicedString
geteilte Zeichenfolge
1const profiler.Node_SlicedString = 11;
Node_Symbol
Symbole (ES6)
1const profiler.Node_Symbol = 12;
Node_SimdValue
Sortierte SIMD-Werte im Heap (ES7)
1const profiler.Node_SimdValue = 13;
Edge_ContextVariable
Variablen in Funktionen
1const profiler.Edge_ContextVariable = 0;
Edge_Element
Elemente im Array
1const profiler.Edge_Element = 1;
Edge_Property
Eigenschaften benannter Objekte
1const profiler.Edge_Property = 2;
Edge_Internal
JS kann den Link nicht eingeben
1const profiler.Edge_Internal = 3;
Edge_Hidden
Zeigen Sie auf den Knoten, dessen Raumgröße im Voraus berechnet werden muss
1const profiler.Edge_Hidden = 4;
Edge_Shortcut
Zeigt auf einen Knoten, dessen Raumgröße nicht im Voraus berechnet werden kann
1const profiler.Edge_Shortcut = 5;
Edge_Weak
eine schwache Referenz (von GC ignoriert)
1const profiler.Edge_Weak = 6;