performance.now()

Краткое описание

Метод performance.now() возвращает временную метку DOMHighResTimeStamp, измеряемую в миллисекундах, с точностью до одной тысячной миллисекунды.

Значение, представленное типом DOMHighResTimeStamp, изменяется в зависимости от контекста. Стоит иметь ввиду следующее:

  • в разделяемых или выделенных потоках выполнения, началом эпохи считается момент начала работы потока.
  • вне потоков выполнения, или в выделенных потоках, созданных в контексте Window, началом эпохи считается значение свойства PerformanceTiming.navigationStart (en-US).
  • в выделенных потоках выполнения, созданных из другого потока, началом эпохи устанавливается начало эпохи этого самого потока.

Синтаксис

t = performance.now();

Пример

var t0 = performance.now();
doSomething();
var t1 = performance.now();
console.log("Call to doSomething took " + (t1 - t0) + " milliseconds.")

В отличие от других временны́х типов данных, доступных в JavaScript (таких как Date.now), метки времени, возвращённые из performance.now(), не ограничены кратностью в одну миллисекунду, а представляют значение времени как число с плавающей запятой, с точностью до микросекунд.

Также, в противоположность Date.now, значение, возвращаемое из performance.now(), всегда возрастает с постоянной скоростью, независимо от системного времени (которое может быть установлено вручную или изменено программами наподобие NTP).

Спецификации

Спецификация Статус Комментарий
High Resolution Time Level 2
Определение 'Performance.now()' в этой спецификации.
Рекомендация Более строгие определения типов и интерфейсов.
High Resolution Time
Определение 'Performance.now()' в этой спецификации.
Рекомендация Начальное определение

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также