Перейти до вмісту

Продуктивність

Вимірювання часу з високою роздільністю, позначки, вимірювання та спостерігачі.

На цій сторінці

Глобальний об’єкт 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

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()

Чи була ця сторінка корисною?