核心是区分用户感知总耗时与服务端处理时间,定位瓶颈在前端网络、中间链路或后端逻辑:通过network面板看分段耗时(queuing、dns、ttfb、download),用performance api埋点采集真实用户数据,并结合performance面板分析long task与渲染阻塞,最后接入监控告警体系实现持续追踪。

网页性能监控中分析接口请求响应耗时,核心是区分“用户感知的总耗时”和“服务端处理时间”,并定位瓶颈落在哪一环——前端网络、中间链路,还是后端逻辑。
看全链路分段耗时(Network 面板)
打开 Chrome DevTools → Network 标签页 → 刷新页面,选中目标接口请求,点击右侧 Timing 标签:
- Queuing / Stalled:浏览器排队或阻塞,常见于同源连接数限制(HTTP/1.1 最多6个)、高优先级资源抢占
-
DNS Lookup:域名解析慢,可检查是否缺失
<link rel="dns-prefetch">或 DNS 服务商响应延迟 -
Initial Connection / SSL:TCP 建连或 TLS 握手耗时高,建议启用 HTTP/2、
preconnect、精简证书链 - Waiting (TTFB):从发出请求到收到第一个字节的时间,反映网关+后端处理+网络往返。超过 200ms 就需后端协同排查
- Content Download:下载阶段耗时长,说明响应体大、未压缩、未走 CDN 或客户端带宽受限
抓真实用户数据(前端埋点)
DevTools 只能看本地调试,要覆盖不同设备、地域、网络环境,必须在前端主动采集:
- 用
performance.getEntriesByType('resource')获取每个 fetch/XHR 的完整 timing 数据(含 connectStart、responseEnd 等) - 对关键接口封装统一请求函数,在发起前记录
performance.now(),收到响应后计算差值并上报 - 上报字段至少包含:接口路径、状态码、总耗时、TTFB、下载耗时、网络类型(navigator.connection.effectiveType)、设备信息
- 按耗时分档统计(如 10s),便于识别异常毛刺和批量劣化
关联主线程与渲染表现(Performance 面板)
有时接口很快,但页面卡顿——说明问题不在网络,而在 JS 执行或渲染:
- 录制 Performance 面板,筛选出该接口返回后的时段,观察是否有 >50ms 的 Long Task
- 检查是否在响应后触发大量 DOM 操作、强制同步布局(Layout Thrashing)或重绘
- 对比 Network 中 TTFB 正常但首屏渲染延迟的情况,大概率是 JS 解析、执行或样式重计算拖慢了视图更新
建立持续监控与告警机制
单次分析只能解决眼前问题,长期体验需系统性追踪:
- 将前端采集的耗时数据接入 Prometheus + Grafana,绘制 P95 耗时趋势、超时率热力图
- 对 P95 > 1s 或超时率突增 0.5% 的接口自动触发企业微信/钉钉告警
- 结合后端日志(如 traceId),打通前后端调用链,确认是 DB 查询慢、缓存失效,还是第三方服务拖累
- 定期对比不同 CDN 节点、不同运营商下的 TTFB 分布,识别区域性网络问题











