La globale performance et node:perf_hooks partagent une même chronologie.
Mesure du temps et entrées
performance.now(); // milliseconds since timeOrigin
performance.mark("start");
performance.measure("work", "start");
performance.getEntriesByName("work")[0].entryType; // "measure"getEntries(), getEntriesByName() et getEntriesByType() renvoient de
nouveaux tableaux triés par heure de début. clearMarks() et clearMeasures()
suppriment les entrées correspondantes.
PerformanceMark peut être construit. Performance, PerformanceEntry et
PerformanceMeasure ne peuvent pas être construits directement.
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");La livraison aux observateurs a lieu à un point de contrôle des microtâches.
disconnect() arrête l’observation et efface les entrées en tampon ;
takeRecords() vide le tampon courant.
PerformanceObserver.supportedEntryTypes contient mark, measure, node et
function.
Les valeurs detail des marques et mesures utilisent le même comportement de
clonage structuré que la messagerie Web. Les types
tels que Date, RegExp, Map, Set et ArrayBuffer conservent leur type et
leur contenu ; les fonctions lèvent une 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() |