Глобальний об’єкт performance і node:perf_hooks мають одну спільну часову шкалу.
Вимірювання часу та записи
performance.now(); // milliseconds since timeOrigin
performance.mark("start");
performance.measure("work", "start");
performance.getEntriesByName("work")[0].entryType; // "measure"getEntries(), getEntriesByName() і getEntriesByType() повертають нові масиви,
відсортовані за часом початку. clearMarks() і clearMeasures() вилучають
відповідні записи.
PerformanceMark можна створити через конструктор. Performance,
PerformanceEntry і PerformanceMeasure не можна створити безпосередньо.
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");Доставка спостерігачу відбувається на контрольній точці мікрозавдань.
disconnect() зупиняє спостереження й очищує буферизовані записи;
takeRecords() спорожнює поточний буфер.
PerformanceObserver.supportedEntryTypes містить mark, measure, node і
function.
Значення detail позначок і вимірювань використовують ту саму поведінку
structured clone, що й Web Messaging. Типи, як-от
Date, RegExp, Map, Set і ArrayBuffer, зберігають свій тип і вміст;
функції кидають 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() |