# Performance

# 指标定义

  • 首屏时间(FP):First Paint,从打开页面到首个像素渲染到页面的时长

  • 首次内容绘制时间(FCP):First Contentful Paint,首次绘制完成 DOM 内容的时长,内容包括文本、图片(包含背景图)、非白色的 canvas 或 SVG,也包括带有正在加载中的 Web 字体的文本

  • 页面可交互时间(TTI):Time to interactive,从页面加载开始到页面处于完全可交互状态的时长。

  • 1 秒快开比:首屏完全加载时长 ≤1s 的 PV 占比 2 秒快开比:首屏完全加载时长 ≤2s 的 PV 占比 5 秒慢开比:首屏完全加载时长>5s 的 PV 占比

# FP (First Paint)

FP 是当浏览器开始绘制内容到屏幕上的时候,只要在视觉上开始发生变化,无论是什么内容触发的视觉变化,在这一刻,这个时间点,叫做 FP。 可通过 performance.getEntriesByType('paint') 方法获取, FP 和 FCP 就在其中。 找到 name 为 first-paint 的对象,描述的即为 FP 的指标数据,其中 startTime 即为 FP 时间。

# FCP (First Contentful Paint)

FCP 指的是浏览器首次绘制来自 DOM 的内容。例如:文本,图片,SVG,canvas 元素等,这个时间点叫 FCP。 可通过 performance.getEntriesByType('paint') 方法获取, FP 和 FCP 就在其中 找到 name 为 first-contentful-paint 的对象,描述的即为 FCP 的指标数据,其中 startTime 即为 FCP 时间。

# 采样 PV

PV _ 页面性能采样率

# 快开比 DOM

解析完毕时长 ≤ 某时长(如 2s)的 采样 PV / 总采样 PV _ 100%

# 慢开比 DOM

解析完毕时长 ≥ 某时长(如 5s)的 采样 PV / 总采样 PV * 100%

# 首字节

计算方式:responseStart - fetchStart

# DOM Ready

HTML 加载完成时间,计算方式:domContentLoadedEventEnd - fetchStart

# 页面完全加载

页面完全加载时间,计算方式:loadEventStart - fetchStart

# DNS 查询

DNS 解析耗时,计算方式:domainLookupEnd - domainLookupStart

# TCP 连接

TCP 连接耗时,计算方式:connectEnd - connectStart

# 请求响应

Time to First Byte(TTFB),计算方式:responseStart - requestStart

# 内容传输

数据传输耗时,计算方式,responseEnd - responseStart

# DOM 解析

DOM 解析耗时,计算方式:domInteractive - responseEnd

# 资源加载

资源加载耗时(页面中同步加载的资源),loadEventStart - domContentLoadedEventEnd

Last Updated: 10/24/2023, 7:35:24 PM