性能 API

性能 API 是一组用于衡量 Web 应用程序性能的标准。

概念和用法

为了确保 Web 应用程序快速运行,衡量和分析各种性能指标非常重要。性能 API 提供了重要的内置指标,以及将您自己的测量结果添加到浏览器性能时间轴的功能。性能时间轴包含高精度时间戳,可以在开发者工具中显示。您还可以将其数据发送到分析端点,以记录一段时间内的性能指标。

每个性能指标都由单个 PerformanceEntry 表示。性能条目具有 namedurationstartTimetype。所有性能指标都扩展了 PerformanceEntry 接口并对其进行了进一步限定。

大多数性能条目无需您进行任何操作即可自动记录,然后可以通过 Performance.getEntries() 或(最好)通过 PerformanceObserver 访问。例如,对于超过设定阈值的事件,会记录 PerformanceEventTiming 条目。但是,性能 API 还使您能够使用 PerformanceMarkPerformanceMeasure 接口定义和记录您自己的自定义事件。

主要 Performance 接口在 WindowWorker 全局作用域中都可用,并且使您能够添加自定义性能条目、清除性能条目以及检索性能条目。

PerformanceObserver 接口使您能够在记录各种类型的性能条目时进行监听。

有关更多概念信息,请参阅下面的 性能 API 指南

UML diagram of Performance APIs

参考

性能 API 中提供了以下接口

EventCounts

performance.eventCounts 返回的只读映射,其中包含每个事件类型已分派的事件数。

LargestContentfulPaint

衡量视口中可见的最大图像或文本块的渲染时间,从页面开始加载时记录。

LayoutShift

根据页面上元素的移动,提供对网页布局稳定性的见解。

LayoutShiftAttribution

提供有关已移动元素的调试信息。

Performance

访问性能测量的主要接口。使用 Window.performanceWorkerGlobalScope.performance 可用于窗口和工作线程上下文。

PerformanceElementTiming

衡量特定元素的渲染时间戳。

PerformanceEntry

性能时间轴上的一个条目,封装单个性能指标。所有性能指标都继承自此接口。

PerformanceEventTiming

衡量事件的延迟和首次输入延迟 (FID)。

PerformanceLongAnimationFrameTiming

提供有关 长动画帧 (LoAFs) 的指标,这些帧占用渲染并阻止其他任务执行。

PerformanceLongTaskTiming

提供有关 长任务 的指标,这些任务占用渲染并阻止其他任务执行。

PerformanceMark

您在性能时间轴上自己的条目的自定义标记。

PerformanceMeasure

两个性能条目之间的自定义时间测量。

PerformanceNavigationTiming

衡量文档导航事件,例如加载文档所需的时间。

PerformanceObserver

在性能时间轴中记录新性能条目时对其进行监听。

PerformanceObserverEntryList

在性能观察器中观察到的条目的列表。

PerformancePaintTiming

衡量网页构建期间的渲染操作。

PerformanceResourceTiming

衡量网络加载指标,例如重定向开始和结束时间、获取开始时间、DNS 查找开始和结束时间、图像、脚本、获取调用等资源的响应开始和结束时间等。

PerformanceScriptTiming

提供有关导致 长动画帧 (LoAFs) 的各个脚本的指标。

PerformanceServerTiming

显示与 Server-Timing HTTP 标头一起发送的服务器指标。

TaskAttributionTiming

识别任务的类型以及负责长任务的容器。

VisibilityStateEntry

衡量页面可见性状态变化的时间,即选项卡从前台切换到后台或反之亦然的时间。

指南

以下指南可帮助您了解性能 API 的关键概念,并提供其功能概述

规范

规范
元素计时 API
事件计时 API
高分辨率时间
最大内容绘制
布局不稳定性
长任务 API
导航计时级别 2
绘制计时
性能时间轴
资源计时
服务器计时
用户计时

另请参阅