API производительности
Примечание: Эта функция доступна в Веб-воркерах.
API производительности — это набор стандартов, используемых для измерения производительности веб-приложений.
Концепции и использование
Для обеспечения высокой скорости веб-приложений важно измерять и анализировать различные показатели производительности. API производительности предоставляет важные встроенные метрики и возможность добавлять собственные измерения к временной шкале производительности браузера. Временная шкала производительности содержит точные временные метки и может отображаться в инструментах разработчика. Вы также можете отправлять данные в конечные точки аналитики для записи показателей производительности со временем.
Каждый показатель производительности представлен отдельной PerformanceEntry. Вход данных производительности имеет name, duration, startTime, и type. Все показатели производительности расширяют интерфейс PerformanceEntry и дополняют его.
Большинство показателей производительности записываются автоматически без вашего участия и затем доступны либо через Performance.getEntries(), либо (предпочтительнее) через PerformanceObserver. Например, записи PerformanceEventTiming регистрируются для событий, которые занимают более установленного порога времени. Но API производительности также позволяет определять и записывать собственные пользовательские события с использованием интерфейсов PerformanceMark и PerformanceMeasure.
Основной интерфейс Performance доступен как в глобальном окружении Window, так и в глобальном окружении Worker и позволяет добавлять пользовательские записи производительности, очищать записи производительности и извлекать записи производительности.
Интерфейс PerformanceObserver позволяет прослушивать различные типы записей производительности по мере их регистрации.
Для получения более концептуальной информации см. руководства по API производительности ниже.
Справочник
В API производительности присутствуют следующие интерфейсы:
EventCounts-
Только для чтения карта, возвращаемая
performance.eventCounts, содержащая количество событий, обработанных по каждому типу событий. LargestContentfulPaint-
Измеряет время отображения самого большого видимого в области просмотра изображения или блока текста, начиная с момента начала загрузки страницы.
LayoutShift-
Предоставляет информацию об устойчивости макета веб-страниц, основанную на перемещении элементов на странице.
LayoutShiftAttribution-
Предоставляет данные отладки об элементах, которые сместились.
NotRestoredReasonDetails-
Представляет одну из причин, по которым просматриваемая страница не смогла использовать кэш вперёд/назад (bfcache).
NotRestoredReasons-
Предоставляет отчётные данные, содержащие причины, по которым текущий документ не смог использовать кэш вперёд/назад (bfcache) при переходе.
Performance-
Основной интерфейс для доступа к измерениям производительности. Доступен в контекстах окна и рабочего потока с помощью
Window.performanceилиWorkerGlobalScope.performance. PerformanceElementTiming-
Измеряет временные метки отображения определённых элементов.
PerformanceEntry-
Запись в временной шкале производительности, обозначающая отдельный показатель производительности. Все показатели производительности наследуют от этого интерфейса.
PerformanceEventTiming-
Измеряет задержку событий и Interaction to Next Paint (INP).
PerformanceLongAnimationFrameTiming-
Предоставляет метрики для длительных кадров анимации (LoAF), которые занимают время отображения и блокируют выполнение других задач.
PerformanceLongTaskTiming-
Предоставляет метрики для длительных задач, которые занимают время отображения и блокируют выполнение других задач.
PerformanceMark-
Пользовательский маркер для собственной записи на временной шкале производительности.
PerformanceMeasure-
Пользовательское измерение времени между двумя записями производительности.
-
Измеряет события навигации документа, например, время, необходимое для загрузки документа.
PerformanceObserver-
Прослушивает новые записи производительности по мере их регистрации во временной шкале производительности.
PerformanceObserverEntryList-
Список записей, которые были пронаблюдены в наблюдателе производительности.
PerformancePaintTiming-
Измеряет операции отображения при построении веб-страницы.
PerformanceResourceTiming-
Измеряет метрики загрузки сети, такие как время начала и окончания перенаправления, время начала и окончания поиска DNS, время начала и окончания ответа для ресурсов, таких как изображения, скрипты, запросы fetch и т.д.
PerformanceScriptTiming-
Предоставляет метрики по отдельным скриптам, вызывающим длительные кадры анимации (LoAF).
PerformanceServerTiming-
Отображает метрики сервера, которые отправляются с ответом в заголовке HTTP
Server-Timing. TaskAttributionTiming-
Определяет тип задачи и контейнер, ответственный за длительную задачу.
VisibilityStateEntry-
Измеряет время изменений состояния видимости страницы, например, когда вкладка переключается с фоновой на переднюю или наоборот.
Руководства
Следующие руководства помогут вам понять ключевые концепции API производительности и предоставят обзор его возможностей:
- Данные производительности: сбор, доступ и работа с данными производительности.
- Высокоточная временная отметка: измерение с высокой точностью времени и монотонных часов.
- Измерение времени ресурсов: измерение времени загрузки ресурсов, загруженных по сети, таких как изображения, CSS и JavaScript.
- Измерение времени навигации: измерение времени навигации документа.
- Измерение времени пользователя: измерение и запись данных производительности, настраиваемых под ваше приложение.
- Измерение времени сервера: сбор метрик со стороны сервера.
- Измерение времени длительных кадров анимации: сбор метрик по длительным кадрам анимации (LoAF) и их причинам.
- Мониторинг причин блокировки bfcache: отчёт о причинах, по которым текущий документ не смог использовать кэш вперёд/назад (bfcache).
Спецификации
См. также
END_OF_DOCUMENT_MARKER
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Performance_API