Performance API
Performance API 是一组用于衡量 web 应用性能的标准。
概念和用法
衡量和分析各种性能指标对于确保 web 应用的速度非常重要。Performance API 提供了重要的内置指标,并能够将你自己的测量结果添加到浏览器的性能时间线(performance timeline)中。性能时间线使用高精度的时间戳,且可以在开发者工具中显示。你还可以将相关数据发送到用于分析的端点,以根据时间记录性能指标。
每一个性能指标都使用一个性能条目(PerformanceEntry
)表示。性能条目有名称(name
)、持续时间(duration
)、开始时间(startTime
)和类型(type
)。每一个性能指标都继承了 PerformanceEntry
接口,并对其进行限定。
大部分性能条目都在不需要任何额外操作的情况下进行记录,并可以通过 Performance.getEntries()
或(最好)通过 PerformanceObserver
访问。例如,PerformanceEventTiming
(en-US) 条目用于记录花费的时间超过设定阈值的事件。而 Performance API 也允许你使用 PerformanceMark
(en-US) 和 PerformanceMeasure
(en-US) 接口定义和记录自定义事件。
Performance
主接口在全局作用域下可通过 self.performance
访问,并允许你增加自定义性能条目、清除性能条目,以及查询性能条目。
PerformanceObserver
接口允许你监听记录的不同类型的性能条目。
接口
EventCounts
(en-US)-
由
performance.eventCounts
(en-US) 返回的只读映射,其中包含每个事件类型被分派的事件数量。 LargestContentfulPaint
(en-US)-
测量视口范围内可见的图像和文本块的最大渲染时间,从页面开始加载时开始记录。
Performance
-
用于性能测量的主接口。可在 window 和 worker 上下文中通过
self.performance
来访问。 PerformanceElementTiming
(en-US)-
测量特定元素的渲染时间戳。
PerformanceEntry
-
封装了单个性能指标的性能时间线条目。所有性能指标都继承自该接口。
PerformanceEventTiming
(en-US)-
测量事件的延迟和首次输入延迟(FID)。
PerformanceLongTaskTiming
-
检测占用渲染并阻止其他任务执行的长任务。
PerformanceMark
(en-US)-
在性能时间线上标记自定义条目。
PerformanceMeasure
(en-US)-
自定义使用两个性能条目表示的时间测量。
-
测量文档导航事件,例如加载文档所需的时间。
PerformanceObserver
-
监听记录到性能时间线中的新的性能条目。
PerformanceObserverEntryList
(en-US)-
性能观察器(PerformanceObserver)中监测的条目的列表。
PerformancePaintTiming
-
测量网页构建期间的渲染操作。
PerformanceResourceTiming
-
测量网络负载指标,例如重定向开始和结束时间、(fetch)请求开始、DNS 查询开始和结束时间,以及图像、脚本、fetch 调用,等资源的响应开始和结束时间。
PerformanceServerTiming
(en-US)-
表示服务器的相关指标,在响应请求时与
Server-Timing
HTTP 标头一起发送。 TaskAttributionTiming
(en-US)-
标识任务类型,及用于长任务测量的容器。