Zum Inhalt springen

Performance

Hochauflösende Zeitmessung, Marks, Measures und Observer.

Auf dieser Seite

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

ExportKindStatusNotes
PerformanceEntryclassFullname, entryType, startTime, duration, detail, toJSON()
PerformanceMarkclassFulldetail
PerformanceMeasureclassFulldetail
PerformanceObserverEntryListclassFullgetEntries(), getEntriesByName(), getEntriesByType()
PerformanceObserverclassFullobserve(), disconnect(), takeRecords(), PerformanceObserver.supportedEntryTypes
PerformanceclassFullnow(), timeOrigin, mark(), measure(), getEntries(), getEntriesByName(), getEntriesByType(), clearMarks(), clearMeasures(), toJSON()

War diese Seite hilfreich?