Das Global performance und node:perf_hooks teilen sich eine Timeline.
Zeitmessung und Einträge
performance.now(); // milliseconds since timeOrigin
performance.mark("start");
performance.measure("work", "start");
performance.getEntriesByName("work")[0].entryType; // "measure"getEntries(), getEntriesByName() und getEntriesByType() geben neue, nach
Startzeit sortierte Arrays zurück. clearMarks() und clearMeasures() entfernen
passende Einträge.
PerformanceMark ist konstruierbar. Performance, PerformanceEntry und
PerformanceMeasure sind nicht direkt konstruierbar.
PerformanceObserver
const observer = new PerformanceObserver((list) => {
for (const entry of list.getEntries()) {
console.log(entry.name, entry.entryType);
}
});
observer.observe({ entryTypes: ["mark", "measure"] });
performance.mark("ready");Die Zustellung an Observer erfolgt an einem Microtask-Checkpoint. disconnect()
beendet die Beobachtung und leert gepufferte Einträge; takeRecords() leert den
aktuellen Puffer.
PerformanceObserver.supportedEntryTypes enthält mark, measure, node und
function.
detail-Werte von Marks und Measures verwenden dasselbe Structured-Clone-Verhalten
wie Web Messaging. Typen wie Date, RegExp, Map,
Set und ArrayBuffer behalten ihren Typ und Inhalt; Funktionen werfen
DataCloneError.
Reference
Status: Full · Not measured · since 1.1.0
Exports
| Export | Kind | Status | Notes |
|---|---|---|---|
PerformanceEntry | class | Full | name, entryType, startTime, duration, detail, toJSON() |
PerformanceMark | class | Full | detail |
PerformanceMeasure | class | Full | detail |
PerformanceObserverEntryList | class | Full | getEntries(), getEntriesByName(), getEntriesByType() |
PerformanceObserver | class | Full | observe(), disconnect(), takeRecords(), PerformanceObserver. |
Performance | class | Full | now(), timeOrigin, mark(), measure(), getEntries(), getEntriesByName(), getEntriesByType(), clearMarks(), clearMeasures(), toJSON() |