浏览 AI 知识库
性能变慢先测哪里:浏览器、接口、数据库还是外部依赖
页面变慢时,先用时间线判断时间花在浏览器、网络、接口、数据库还是外部依赖。没有基准数据就开始优化,很容易改到最不慢的那一层。
页面慢了 3.6 秒,真正的瓶颈可能一行前端代码都不在
列表页从 1.2 秒变成 4.8 秒,团队直接重写前端渲染。网络时间线显示 4.1 秒都花在 API,API 又在等数据库同一条慢查询。
- 测试条件、样本量和指标固定
- 瓶颈有时间线证据
- 优化前后使用同一场景重复测量
网站性能慢怎么排查,先从“首屏和交互慢”这一类现象查起
首屏和交互慢
- 原因
- 资源体积、主线程长任务、布局、图片或客户端数据处理。
- 怎么改
- 用浏览器性能和网络面板测加载、渲染与交互,建立真实设备基线。
接口本身慢
- 原因
- 应用计算、锁、排队、序列化或下游调用占用时间。
- 怎么改
- 加入分段耗时和请求关联,比较成功与慢请求,不只看平均值。
数据库耗时高
- 原因
- 慢查询、缺索引、错误基数、N+1、锁或连接池。
- 怎么改
- 保存查询计划、扫描行、等待和数据量,在副本或安全环境验证索引与改写。
外部依赖波动
- 原因
- 上游延迟、限流、DNS、连接复用或超时重试放大。
- 怎么改
- 单独统计依赖耗时和状态,设置合理超时、缓存、降级与重试上限。
复测前,固定原始现象、环境和目标
| 需要确认 | 本例内容 |
|---|---|
| 现有材料 | 相同测试账号与 500 条数据;浏览器性能记录、API requestId、服务日志和数据库慢查询。 |
| 不能越过的边界 | 先建立同条件基线,再分浏览器、网络、应用、数据库与外部依赖;一次只优化已证实瓶颈。 |
| 要交付的结果 | 基准数据与瓶颈定位表 |
把‘页面慢’拆成浏览器、接口、数据库和上游时间
| 层 | 实测输入 | 证据 | 优化决定 |
|---|---|---|---|
| 浏览器 | 真实手机打开报告页 | LCP、长任务、资源体积 | 先压缩最大图片 |
| 接口 | 同一请求 30 次 | 中位数/P95、排队和序列化 | 确认是否应用计算占比高 |
| 数据库 | 相同租户与数据量 | 查询计划、扫描行、锁等待 | 只在副本验证索引 |
| 上游 | 同一请求关联 ID | 依赖耗时、状态和重试 | 设置超时和降级 |
性能数字为示例;真实优化必须使用同一环境和数据基线。
网站性能慢怎么排查:按原条件复测的结果
原始现象
总耗时 4.8 秒,只有“页面慢”这一条主观描述。
基准数据与瓶颈定位表
时间线拆为浏览器 0.3 秒、网络 0.2 秒、API 4.3 秒,其中查询 4.05 秒。补索引后同一数据中位数降到 1.4 秒,5 次范围 1.3-1.6 秒;前端未重写。
