Spec-Zone.ru › Deno 2

perf_hooks

Этот модуль предоставляет реализацию подмножества API производительности веба W3C, а также дополнительные API для измерения производительности, специфичные для Node.js.

Node.js поддерживает следующие API производительности веба:

  • Точное время
  • Временная шкала производительности
  • Пользовательское время
  • Время загрузки ресурсов
import { PerformanceObserver, performance } from 'node:perf_hooks';

const obs = new PerformanceObserver((items) => {
  console.log(items.getEntries()[0].duration);
  performance.clearMarks();
});
obs.observe({ type: 'measure' });
performance.measure('Start to Now');

performance.mark('A');
doSomeLongRunningProcess(() => {
  performance.measure('A to Now', 'A');

  performance.mark('B');
  performance.measure('A to B', 'A', 'B');
});

Использование в Deno

import * as mod from "node:perf_hooks";

класс PerformanceEntry

Использование в Deno

import { PerformanceEntry } from "node:perf_hooks";

Конструктор этого класса напрямую пользователям не предоставляется.

Конструкторы

PerformanceEntry()
новый

Свойства

detail:
NodeGCPerformanceDetail
| unknown
| undefined
только для чтения
необязательное

Дополнительные сведения, относящиеся к entryType.

duration: number
только для чтения

Общее количество миллисекунд, прошедших с момента создания этой записи. Это значение имеет смысл не для всех типов записей производительности.

entryType: EntryType
только для чтения

Тип записи производительности. Это может быть одно из следующих значений:

  • 'node' (только в Node.js)
  • 'mark' (доступно в вебе)
  • 'measure' (доступно в вебе)
  • 'gc' (только в Node.js)
  • 'function' (только в Node.js)
  • 'http2' (только в Node.js)
  • 'http' (только в Node.js)
name: string
только для чтения

Имя записи производительности.

startTime: number
только для чтения

Высокоточная временная метка в миллисекундах, обозначающая время начала записи производительности.

Методы

toJSON(): any

переменная PerformanceEntry

PerformanceEntry является глобальной ссылкой на import { PerformanceEntry } from 'node:perf_hooks'

Тип

globalThis extends { onmessage: any; PerformanceEntry: infer T; } ? T : _PerformanceEntry

См. также

  • https://nodejs.org/docs/latest-v22.x/api/globals.html#performanceentry


класс PerformanceMark

наследует PerformanceEntry

Использование в Deno

import { PerformanceMark } from "node:perf_hooks";

Предоставляет доступ к меткам, созданным с помощью метода Performance.mark().

Свойства

duration: 0
только для чтения
entryType: "mark"
только для чтения

переменная PerformanceMark

PerformanceMark — это глобальная ссылка на import { PerformanceMark } from 'node:perf_hooks'

Тип

globalThis extends { onmessage: any; PerformanceMark: infer T; } ? T : _PerformanceMark

См. также

  • https://nodejs.org/docs/latest-v22.x/api/globals.html#performancemark


класс PerformanceMeasure

наследует PerformanceEntry

Использование в Deno

import { PerformanceMeasure } from "node:perf_hooks";

Предоставляет доступ к измерениям, созданным с помощью метода Performance.measure().

Конструктор этого класса напрямую пользователям не предоставляется.

Свойства

entryType: "measure"
только для чтения

переменная PerformanceMeasure

PerformanceMeasure — это глобальная ссылка на import { PerformanceMeasure } from 'node:perf_hooks'

Тип

globalThis extends { onmessage: any; PerformanceMeasure: infer T; } ? T : _PerformanceMeasure

См. также

  • https://nodejs.org/docs/latest-v22.x/api/globals.html#performancemeasure


class PerformanceNodeTiming

extends PerformanceEntry

Использование в Deno

import { PerformanceNodeTiming } from "node:perf_hooks";

Это свойство является расширением Node.js. Оно недоступно в веб-браузерах.

Предоставляет сведения о времени работы самого Node.js. Конструктор этого класса недоступен пользователям.

Свойства

bootstrapComplete: number
только для чтения

Высокоточная временная метка в миллисекундах, указывающая момент завершения начальной загрузки процесса Node.js. Если начальная загрузка ещё не завершена, значение свойства равно -1.

entryType: "node"
только для чтения
environment: number
только для чтения

Высокоточная временная метка в миллисекундах, указывающая момент инициализации среды Node.js.

idleTime: number
только для чтения

Высокоточная временная метка в миллисекундах, указывающая время простоя цикла событий внутри поставщика событий цикла событий (например, epoll_wait). Загрузка ЦП не учитывается. Если цикл событий ещё не запущен (например, на первом тике основного скрипта), значение свойства равно 0.

loopExit: number
только для чтения

Высокоточная временная метка в миллисекундах, указывающая момент выхода из цикла событий Node.js. Если цикл событий ещё не завершился, значение свойства равно -1. Значение, отличное от -1, может быть только в обработчике события 'exit'.

loopStart: number
только для чтения

Высокоточная временная метка в миллисекундах, указывающая момент запуска цикла событий Node.js. Если цикл событий ещё не запущен (например, на первом тике основного скрипта), значение свойства равно -1.

nodeStart: number
только для чтения

Высокоточная временная метка в миллисекундах, указывающая момент инициализации процесса Node.js.

uvMetricsInfo: UVMetrics
только для чтения

Это оболочка для функции uv_metrics_info. Она возвращает текущий набор метрик цикла событий.

Рекомендуется использовать это свойство внутри функции, выполнение которой запланировано с помощью setImmediate, чтобы избежать сбора метрик до завершения всех операций, запланированных на текущую итерацию цикла.

v8Start: number
только для чтения

Высокоточная временная метка в миллисекундах, указывающая момент инициализации платформы V8.


класс PerformanceObserver

наследует AsyncResource

Использование в Deno

import { PerformanceObserver } from "node:perf_hooks";

Конструкторы

PerformanceObserver(callback: PerformanceObserverCallback)
new

Методы

disconnect(): void

Отключает экземпляр PerformanceObserver от всех уведомлений.

observe(options: { entryTypes: readonly EntryType[]; buffered?: boolean | undefined; } | { type: EntryType; buffered?: boolean | undefined; }): void

Подписывает экземпляр PerformanceObserver на уведомления о новых экземплярах PerformanceEntry, определяемых с помощью options.entryTypes или options.type:

import {
  performance,
  PerformanceObserver,
} from 'node:perf_hooks';

const obs = new PerformanceObserver((list, observer) => {
  // Called once asynchronously. `list` contains three items.
});
obs.observe({ type: 'mark' });

for (let n = 0; n < 3; n++)
  performance.mark(`test${n}`);
takeRecords(): PerformanceEntry[]

переменная PerformanceObserver

PerformanceObserver — глобальная ссылка на import { PerformanceObserver } from 'node:perf_hooks'

Тип

globalThis extends { onmessage: any; PerformanceObserver: infer T; } ? T : _PerformanceObserver

См. также

  • https://nodejs.org/docs/latest-v22.x/api/globals.html#performanceobserver


класс PerformanceObserverEntryList

Использование в Deno

import { PerformanceObserverEntryList } from "node:perf_hooks";

Методы

getEntries(): PerformanceEntry[]

Возвращает список объектов PerformanceEntry в хронологическом порядке относительно performanceEntry.startTime.

import {
  performance,
  PerformanceObserver,
} from 'node:perf_hooks';

const obs = new PerformanceObserver((perfObserverList, observer) => {
  console.log(perfObserverList.getEntries());

   * [
   *   PerformanceEntry {
   *     name: 'test',
   *     entryType: 'mark',
   *     startTime: 81.465639,
   *     duration: 0,
   *     detail: null
   *   },
   *   PerformanceEntry {
   *     name: 'meow',
   *     entryType: 'mark',
   *     startTime: 81.860064,
   *     duration: 0,
   *     detail: null
   *   }
   * ]

  performance.clearMarks();
  performance.clearMeasures();
  observer.disconnect();
});
obs.observe({ type: 'mark' });

performance.mark('test');
performance.mark('meow');
getEntriesByName(
name: string,
type?: EntryType,
): PerformanceEntry[]

Возвращает список объектов PerformanceEntry в хронологическом порядке относительно performanceEntry.startTime, у которых performanceEntry.name равно name и, необязательно, performanceEntry.entryType равноtype.

import {
  performance,
  PerformanceObserver,
} from 'node:perf_hooks';

const obs = new PerformanceObserver((perfObserverList, observer) => {
  console.log(perfObserverList.getEntriesByName('meow'));

   * [
   *   PerformanceEntry {
   *     name: 'meow',
   *     entryType: 'mark',
   *     startTime: 98.545991,
   *     duration: 0,
   *     detail: null
   *   }
   * ]

  console.log(perfObserverList.getEntriesByName('nope')); // []

  console.log(perfObserverList.getEntriesByName('test', 'mark'));

   * [
   *   PerformanceEntry {
   *     name: 'test',
   *     entryType: 'mark',
   *     startTime: 63.518931,
   *     duration: 0,
   *     detail: null
   *   }
   * ]

  console.log(perfObserverList.getEntriesByName('test', 'measure')); // []

  performance.clearMarks();
  performance.clearMeasures();
  observer.disconnect();
});
obs.observe({ entryTypes: ['mark', 'measure'] });

performance.mark('test');
performance.mark('meow');
getEntriesByType(type: EntryType): PerformanceEntry[]

Возвращает список объектов PerformanceEntry в хронологическом порядке относительно performanceEntry.startTime, у которых performanceEntry.entryType равно type.

import {
  performance,
  PerformanceObserver,
} from 'node:perf_hooks';

const obs = new PerformanceObserver((perfObserverList, observer) => {
  console.log(perfObserverList.getEntriesByType('mark'));

   * [
   *   PerformanceEntry {
   *     name: 'test',
   *     entryType: 'mark',
   *     startTime: 55.897834,
   *     duration: 0,
   *     detail: null
   *   },
   *   PerformanceEntry {
   *     name: 'meow',
   *     entryType: 'mark',
   *     startTime: 56.350146,
   *     duration: 0,
   *     detail: null
   *   }
   * ]

  performance.clearMarks();
  performance.clearMeasures();
  observer.disconnect();
});
obs.observe({ type: 'mark' });

performance.mark('test');
performance.mark('meow');

переменная PerformanceObserverEntryList

PerformanceObserverEntryList — глобальная ссылка на import { PerformanceObserverEntryList } from 'node:perf_hooks'

Тип

globalThis extends { onmessage: any; PerformanceObserverEntryList: infer T; } ? T : _PerformanceObserverEntryList

См. также

  • https://nodejs.org/docs/latest-v22.x/api/globals.html#performanceobserverentrylist


класс PerformanceResourceTiming

наследует PerformanceEntry

Использование в Deno

import { PerformanceResourceTiming } from "node:perf_hooks";

Предоставляет подробные данные о времени сетевых операций при загрузке ресурсов приложения.

Конструктор этого класса недоступен пользователям напрямую.

Конструкторы

PerformanceResourceTiming()
новый

Свойства

connectEnd: number
только чтение

Метка времени с высокой точностью в миллисекундах, обозначающая момент сразу после того, как Node.js завершает установление соединения с сервером для получения ресурса.

connectStart: number
только чтение

Метка времени с высокой точностью в миллисекундах, обозначающая момент непосредственно перед тем, как Node.js начинает устанавливать соединение с сервером для получения ресурса.

decodedBodySize: number
только чтение

Число, представляющее размер (в октетах) тела сообщения, полученного в результате выборки (по HTTP или из кэша), после удаления применённых кодировок содержимого.

domainLookupEnd: number
только чтение

Метка времени с высокой точностью в миллисекундах, обозначающая момент сразу после того, как Node.js завершает поиск доменного имени ресурса.

domainLookupStart: number
только чтение

Метка времени с высокой точностью в миллисекундах непосредственно перед тем, как Node.js начинает поиск доменного имени ресурса.

encodedBodySize: number
только чтение

Число, представляющее размер (в октетах) тела полезной нагрузки, полученного в результате выборки (по HTTP или из кэша), до удаления применённых кодировок содержимого.

entryType: "resource"
только чтение
fetchStart: number
только чтение

Метка времени с высокой точностью в миллисекундах непосредственно перед тем, как Node.js начинает получать ресурс.

redirectEnd: number
только чтение

Метка времени с высокой точностью в миллисекундах, которая будет зафиксирована сразу после получения последнего байта ответа на последнее перенаправление.

redirectStart: number
только чтение

Метка времени с высокой точностью в миллисекундах, обозначающая время начала выборки, инициирующей перенаправление.

requestStart: number
только чтение

Метка времени с высокой точностью в миллисекундах, обозначающая момент непосредственно перед тем, как Node.js получает первый байт ответа от сервера.

responseEnd: number
только чтение

Метка времени с высокой точностью в миллисекундах, обозначающая момент сразу после получения Node.js последнего байта ресурса или непосредственно перед закрытием транспортного соединения — в зависимости от того, что произойдёт раньше.

secureConnectionStart: number
только для чтения

Метка времени с точностью до миллисекунды и высоким разрешением, обозначающая момент непосредственно перед тем, как Node.js начинает процесс рукопожатия для защиты текущего соединения.

transferSize: number
только для чтения

Число, представляющее размер (в октетах) полученного ресурса. Размер включает поля заголовка ответа и тело полезной нагрузки ответа.

workerStart: number
только для чтения

Метка времени с точностью до миллисекунды и высоким разрешением, обозначающая момент непосредственно перед отправкой запроса fetch. Если ресурс не перехватывается обработчиком, свойство всегда возвращает 0.

Методы

toJSON(): any

Возвращает object, представляющий объект PerformanceResourceTiming в формате JSON

переменная PerformanceResourceTiming

PerformanceResourceTiming — это глобальная ссылка на import { PerformanceResourceTiming } from 'node:perf_hooks'

Тип

globalThis extends { onmessage: any; PerformanceResourceTiming: infer T; } ? T : _PerformanceResourceTiming

См. также

  • https://nodejs.org/docs/latest-v22.x/api/globals.html#performanceresourcetiming


функция createHistogram

Использование в Deno

import { createHistogram } from "node:perf_hooks";
createHistogram(options?: CreateHistogramOptions): RecordableHistogram

Возвращает RecordableHistogram.

Параметры

options: CreateHistogramOptions
необязательный

Тип возвращаемого значения

RecordableHistogram

function monitorEventLoopDelay

Использование в Deno

import { monitorEventLoopDelay } from "node:perf_hooks";
monitorEventLoopDelay(options?: EventLoopMonitorOptions): IntervalHistogram
Совместимость с Deno

Этот символ не реализован.

Это свойство является расширением Node.js. Оно недоступно в веб-браузерах.

Создаёт объект IntervalHistogram, который с течением времени измеряет и сообщает о задержке цикла событий. Задержки будут сообщаться в наносекундах.

Использование таймера для обнаружения приблизительной задержки цикла событий работает, потому что выполнение таймеров напрямую связано с жизненным циклом цикла событий libuv. То есть задержка в цикле приводит к задержке выполнения таймера, и именно такие задержки предназначен обнаруживать этот API.

import { monitorEventLoopDelay } from 'node:perf_hooks';
const h = monitorEventLoopDelay({ resolution: 20 });
h.enable();
// Do something.
h.disable();
console.log(h.min);
console.log(h.max);
console.log(h.mean);
console.log(h.stddev);
console.log(h.percentiles);
console.log(h.percentile(50));
console.log(h.percentile(99));

Параметры

options: EventLoopMonitorOptions
необязательный

Возвращаемый тип

IntervalHistogram

interface CreateHistogramOptions

Использование в Deno

import { type CreateHistogramOptions } from "node:perf_hooks";

Свойства

min:
number
| bigint
| undefined
необязательный

Минимальное записываемое значение. Должно быть целым числом больше 0.

max:
number
| bigint
| undefined
необязательный

Максимальное записываемое значение. Должно быть целым числом больше min.

figures: number | undefined
необязательный

Количество цифр точности. Должно быть числом от 1 до 5.


interface EventLoopMonitorOptions

Использование в Deno

import { type EventLoopMonitorOptions } from "node:perf_hooks";

Свойства

resolution: number | undefined
необязательный

Частота измерений в миллисекундах. Должна быть больше нуля.


interface EventLoopUtilization

Использование в Deno

import { type EventLoopUtilization } from "node:perf_hooks";

Свойства

idle: number
active: number
utilization: number

интерфейс Histogram

Использование в Deno

import { type Histogram } from "node:perf_hooks";

Свойства

count: number
только для чтения

Количество выборок, записанных гистограммой.

countBigInt: bigint
только для чтения

Количество выборок, записанных гистограммой. v17.4.0, v16.14.0

exceeds: number
только для чтения

Количество случаев, когда задержка цикла событий превышала максимальный порог задержки цикла событий, равный 1 часу.

exceedsBigInt: bigint
только для чтения

Количество случаев, когда задержка цикла событий превышала максимальный порог задержки цикла событий, равный 1 часу.

max: number
только для чтения

Максимальная зарегистрированная задержка цикла событий.

maxBigInt: number
только для чтения

Максимальная зарегистрированная задержка цикла событий. v17.4.0, v16.14.0

mean: number
только для чтения

Среднее значение зарегистрированных задержек цикла событий.

min: number
только для чтения

Минимальная зарегистрированная задержка цикла событий.

minBigInt: bigint
только для чтения

Минимальная зарегистрированная задержка цикла событий. v17.4.0, v16.14.0

percentiles: Map<number, number>
только для чтения

Возвращает объект Map с накопленным распределением процентилей.

percentilesBigInt: Map<bigint, bigint>
только для чтения

Возвращает объект Map с накопленным распределением процентилей.

stddev: number
только для чтения

Стандартное отклонение зарегистрированных задержек цикла событий.

Методы

percentile(percentile: number): number

Возвращает значение для указанного процентиля.

percentileBigInt(percentile: number): bigint

Возвращает значение для указанного процентиля.

reset(): void

Сбрасывает собранные данные гистограммы.


интерфейс IntervalHistogram

extends Histogram

Использование в Deno

import { type IntervalHistogram } from "node:perf_hooks";

Методы

enable(): boolean

Включает таймер интервала обновления. Возвращает true, если таймер был запущен, и false, если он уже был запущен.

disable(): boolean

Отключает таймер интервала обновления. Возвращает true, если таймер был остановлен, и false, если он уже был остановлен.


интерфейс MarkOptions

Использование в Deno

import { type MarkOptions } from "node:perf_hooks";

Свойства

detail: unknown | undefined
необязательный

Дополнительные необязательные сведения, которые можно включить в отметку.

startTime: number | undefined
необязательный

Необязательная временная метка, используемая в качестве времени отметки.


интерфейс MeasureOptions

Использование в Deno

import { type MeasureOptions } from "node:perf_hooks";

Свойства

detail: unknown | undefined
необязательный

Дополнительные необязательные сведения, которые можно включить в отметку.

duration: number | undefined
необязательный

Продолжительность между временем начала и временем окончания.

end:
number
| string
| undefined
необязательный

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

start:
number
| string
| undefined
необязательный

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


интерфейс NodeGCPerformanceDetail

Использование в Deno

import { type NodeGCPerformanceDetail } from "node:perf_hooks";

Свойства

kind: number | undefined
только для чтения
необязательное

Если performanceEntry.entryType равно 'gc', свойство performance.kind указывает тип выполненной операции сборки мусора. Допустимые значения см. в perf_hooks.constants.

flags: number | undefined
только для чтения
необязательное

Если performanceEntry.entryType равно 'gc', свойство performance.flags содержит дополнительную информацию об операции сборки мусора. Допустимые значения см. в perf_hooks.constants.


интерфейс Performance

Использование в Deno

import { type Performance } from "node:perf_hooks";

Свойства

eventLoopUtilization: EventLoopUtilityFunction

eventLoopUtilization похож на загрузку ЦП, но рассчитывается с использованием высокоточного астрономического времени. Он показывает, какой процент времени цикл обработки событий провёл вне поставщика событий цикла обработки событий (например, epoll_wait). Другое время простоя ЦП не учитывается.

nodeTiming: PerformanceNodeTiming
только для чтения

Это свойство является расширением Node.js. Оно недоступно в веб-браузерах.

Экземпляр класса PerformanceNodeTiming, предоставляющий показатели производительности для определённых этапов работы Node.js.

timeOrigin: number
только для чтения

timeOrigin задаёт временную метку с точностью до миллисекунды, соответствующую моменту запуска текущего процесса node, измеренную в формате Unix.

Методы

clearMarks(name?: string): void

Если name не указано, удаляет все объекты PerformanceMark из шкалы производительности. Если name указано, удаляет только пометку с указанным именем.

clearMeasures(name?: string): void

Если name не указано, удаляет все объекты PerformanceMeasure из шкалы производительности. Если name указано, удаляет только измерение с указанным именем.

clearResourceTimings(name?: string): void

Если name не указано, удаляет все объекты PerformanceResourceTiming из шкалы ресурсов. Если name указано, удаляет только ресурс с указанным именем.

getEntries(): PerformanceEntry[]

Возвращает список объектов PerformanceEntry в хронологическом порядке относительно performanceEntry.startTime. Если вас интересуют только записи о производительности определенных типов или с определенными именами, см. performance.getEntriesByType() и performance.getEntriesByName().

getEntriesByName(
name: string,
type?: EntryType,
): PerformanceEntry[]

Возвращает список объектов PerformanceEntry в хронологическом порядке относительно performanceEntry.startTime, у которых performanceEntry.name равно name и, при необходимости, performanceEntry.entryType равно type.

getEntriesByType(type: EntryType): PerformanceEntry[]

Возвращает список объектов PerformanceEntry в хронологическом порядке относительно performanceEntry.startTime, у которых performanceEntry.entryType равно type.

mark(
name: string,
options?: MarkOptions,
): PerformanceMark

Создает новую запись PerformanceMark в шкале производительности. PerformanceMark — это подкласс PerformanceEntry, у которого performanceEntry.entryType всегда равно 'mark', а performanceEntry.duration всегда равно 0. Метки производительности используются для обозначения важных моментов в шкале производительности.

Созданная запись PerformanceMark добавляется в глобальную шкалу производительности, и ее можно запросить с помощью performance.getEntries, performance.getEntriesByName и performance.getEntriesByType. После выполнения наблюдения записи следует вручную удалить из глобальной шкалы производительности с помощью performance.clearMarks.

markResourceTiming(
timingInfo: object,
requestedUrl: string,
initiatorType: string,
global: object,
cacheMode: "" | "local",
bodyInfo: object,
responseStatus: number,
deliveryType?: string,
): PerformanceResourceTiming

Создает новую запись PerformanceResourceTiming в шкале ресурсов. PerformanceResourceTiming — это подкласс PerformanceEntry, у которого performanceEntry.entryType всегда равно 'resource'. Ресурсы производительности используются для обозначения моментов в шкале ресурсов.

measure(
name: string,
startMark?: string,
endMark?: string,
): PerformanceMeasure

Создает новую запись PerformanceMeasure в шкале производительности. PerformanceMeasure — это подкласс PerformanceEntry, у которого performanceEntry.entryType всегда равно 'measure', а performanceEntry.duration показывает количество миллисекунд, прошедших между startMark и endMark.

Аргумент startMark может указывать на любой существующий PerformanceMark в шкале производительности или на любое из свойств временных меток, предоставляемых классом PerformanceNodeTiming. Если указанного startMark не существует, по умолчанию startMark устанавливается в значение timeOrigin.

Аргумент endMark должен указывать на любой существующий PerformanceMark в шкале производительности или на любое из свойств временных меток, предоставляемых классом PerformanceNodeTiming. Если указанного endMark не существует, будет вызвана ошибка.

measure(
name: string,
options: MeasureOptions,
): PerformanceMeasure
now(): number

Возвращает текущую высокоточную временную метку в миллисекундах, где 0 соответствует началу текущего процесса node.

setResourceTimingBufferSize(maxSize: number): void

Устанавливает размер глобального буфера временных характеристик ресурсов равным указанному числу объектов записей о производительности типа "resource".

По умолчанию максимальный размер буфера равен 250.

timerify<T extends (...params: any[]) => any>(
fn: T,
options?: TimerifyOptions,
): T

Это свойство является расширением Node.js. Оно недоступно в веб-браузерах.

Оборачивает функцию в новую функцию, которая измеряет время выполнения обёрнутой функции. Для доступа к сведениям о времени необходимо, чтобы PerformanceObserver был подписан на тип события 'function'.

import {
  performance,
  PerformanceObserver,
} from 'node:perf_hooks';

function someFunction() {
  console.log('hello world');
}

const wrapped = performance.timerify(someFunction);

const obs = new PerformanceObserver((list) => {
  console.log(list.getEntries()[0].duration);

  performance.clearMarks();
  performance.clearMeasures();
  obs.disconnect();
});
obs.observe({ entryTypes: ['function'] });

// A performance timeline entry will be created
wrapped();

Если обёрнутая функция возвращает промис, к нему будет добавлен обработчик finally, и длительность будет сообщена после вызова этого обработчика.

toJSON(): any

Объект, представляющий собой JSON-представление объекта performance. Он аналогичен window.performance.toJSON в браузерах.


интерфейс RecordableHistogram

расширяет Histogram

Использование в Deno

import { type RecordableHistogram } from "node:perf_hooks";

Методы

record(val: number | bigint): void
recordDelta(): void

Вычисляет время (в наносекундах), прошедшее с момента предыдущего вызова recordDelta(), и записывает это значение в гистограмму.

add(other: RecordableHistogram): void

Добавляет значения из other в эту гистограмму.


интерфейс TimerifyOptions

Использование в Deno

import { type TimerifyOptions } from "node:perf_hooks";

Свойства

histogram: RecordableHistogram | undefined
необязательное

Объект гистограммы, созданный с помощью perf_hooks.createHistogram(), который будет записывать длительность выполнения в наносекундах.


интерфейс UVMetrics

Использование в Deno

import { type UVMetrics } from "node:perf_hooks";

Свойства

loopCount: number
только для чтения

Количество итераций цикла событий.

events: number
только для чтения

Количество событий, обработанных обработчиком событий.

eventsWaiting: number
только для чтения

Количество событий, ожидавших обработки на момент вызова поставщика событий.


пространство имён constants

Использование в Deno

import { constants } from "node:perf_hooks";

Переменные

constants.NODE_PERFORMANCE_GC_FLAGS_ALL_AVAILABLE_GARBAGE
Документация отсутствует
constants.NODE_PERFORMANCE_GC_FLAGS_ALL_EXTERNAL_MEMORY
Документация отсутствует
constants.NODE_PERFORMANCE_GC_FLAGS_CONSTRUCT_RETAINED
Документация отсутствует
constants.NODE_PERFORMANCE_GC_FLAGS_FORCED
Документация отсутствует
constants.NODE_PERFORMANCE_GC_FLAGS_NO
Документация отсутствует
constants.NODE_PERFORMANCE_GC_FLAGS_SCHEDULE_IDLE
Документация отсутствует
constants.NODE_PERFORMANCE_GC_FLAGS_SYNCHRONOUS_PHANTOM_PROCESSING
Документация отсутствует
constants.NODE_PERFORMANCE_GC_INCREMENTAL
Документация отсутствует
constants.NODE_PERFORMANCE_GC_MAJOR
Документация отсутствует
constants.NODE_PERFORMANCE_GC_MINOR
Документация отсутствует
constants.NODE_PERFORMANCE_GC_WEAKCB
Документация отсутствует

псевдоним типа EntryType

Использование в Deno

import { type EntryType } from "node:perf_hooks";

Определение

"dns"
| "function"
| "gc"
| "http2"
| "http"
| "mark"
| "measure"
| "net"
| "node"
| "resource"

псевдоним типа EventLoopUtilityFunction

Использование в Deno

import { type EventLoopUtilityFunction } from "node:perf_hooks";

Определение

(
utilization1?: EventLoopUtilization,
utilization2?: EventLoopUtilization,
) => EventLoopUtilization

псевдоним типа PerformanceObserverCallback

Использование в Deno

import { type PerformanceObserverCallback } from "node:perf_hooks";

Определение

(
list: PerformanceObserverEntryList,
observer: PerformanceObserver,
) => void

переменная constants.NODE_PERFORMANCE_GC_FLAGS_ALL_AVAILABLE_GARBAGE

Использование в Deno

import { constants } from "node:perf_hooks";

Тип

number

переменная constants.NODE_PERFORMANCE_GC_FLAGS_ALL_EXTERNAL_MEMORY

Использование в Deno

import { constants } from "node:perf_hooks";

Тип

number

переменная constants.NODE_PERFORMANCE_GC_FLAGS_CONSTRUCT_RETAINED

Использование в Deno

import { constants } from "node:perf_hooks";

Тип

number

переменная constants.NODE_PERFORMANCE_GC_FLAGS_FORCED

Использование в Deno

import { constants } from "node:perf_hooks";

Тип

number

переменная constants.NODE_PERFORMANCE_GC_FLAGS_NO

Использование в Deno

import { constants } from "node:perf_hooks";

Тип

number

переменная constants.NODE_PERFORMANCE_GC_FLAGS_SCHEDULE_IDLE

Использование в Deno

import { constants } from "node:perf_hooks";

Тип

number

переменная constants.NODE_PERFORMANCE_GC_FLAGS_SYNCHRONOUS_PHANTOM_PROCESSING

Использование в Deno

import { constants } from "node:perf_hooks";

Тип

number

переменная constants.NODE_PERFORMANCE_GC_INCREMENTAL

Использование в Deno

import { constants } from "node:perf_hooks";

Тип

number

переменная constants.NODE_PERFORMANCE_GC_MAJOR

Использование в Deno

import { constants } from "node:perf_hooks";

Тип

number

переменная constants.NODE_PERFORMANCE_GC_MINOR

Использование в Deno

import { constants } from "node:perf_hooks";

Тип

number

переменная constants.NODE_PERFORMANCE_GC_WEAKCB

Использование в Deno

import { constants } from "node:perf_hooks";

Тип

number

переменная performance

Использование в Deno

import { performance } from "node:perf_hooks";

Тип

Performance

performance — глобальная ссылка на import { performance } from 'node:perf_hooks'

Тип

globalThis extends { onmessage: any; performance: infer T; } ? T : _performance

См. также

  • https://nodejs.org/docs/latest-v22.x/api/globals.html#performance


© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/api/node/perf_hooks

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API