展开知识库目录

性能变慢先测哪里:浏览器、接口、数据库还是外部依赖

用户感到慢可能来自浏览器渲染、网络、应用排队、数据库或外部依赖。

先把问题看准

性能问题先量端到端时间

用户感到慢可能来自浏览器渲染、网络、应用排队、数据库或外部依赖。先记录同一请求在各层的时间,再优化占比最大的真实瓶颈。

故障分支 1

首屏和交互慢

常见原因:资源体积、主线程长任务、布局、图片或客户端数据处理。

处理方法:用浏览器性能和网络面板测加载、渲染与交互,建立真实设备基线。

把涉及的文件、目录、版本、命令和实际输出写进记录;代码变化同时保留 diff 与测试结果。

只有实际现象和证据与这一分支吻合时才执行处理;不吻合就继续检查下一层。

故障分支 2

接口本身慢

常见原因:应用计算、锁、排队、序列化或下游调用占用时间。

处理方法:加入分段耗时和请求关联,比较成功与慢请求,不只看平均值。

确认“接口本身慢”已经有可回查结果,再进入“数据库耗时高”;依据仍然来自猜测时,把缺口单列并停在当前步骤。

只有实际现象和证据与这一分支吻合时才执行处理;不吻合就继续检查下一层。

故障分支 3

数据库耗时高

常见原因:慢查询、缺索引、错误基数、N+1、锁或连接池。

处理方法:保存查询计划、扫描行、等待和数据量,在副本或安全环境验证索引与改写。

确认“数据库耗时高”已经有可回查结果,再进入“外部依赖波动”;依据仍然来自猜测时,把缺口单列并停在当前步骤。

只有实际现象和证据与这一分支吻合时才执行处理;不吻合就继续检查下一层。

故障分支 4

外部依赖波动

常见原因:上游延迟、限流、DNS、连接复用或超时重试放大。

处理方法:单独统计依赖耗时和状态,设置合理超时、缓存、降级与重试上限。

需要修改时先限定文件和行为范围,无法说明回滚方式或影响面的动作先不执行。 完成后把证据归入“基准数据与瓶颈定位表”。

只有实际现象和证据与这一分支吻合时才执行处理;不吻合就继续检查下一层。

做到这里就可以停

优化前后使用同一基准

固定数据量、环境、请求和并发,比较中位数与高分位、错误率和资源。只改善一次本地运行或平均值,不足以证明用户体验变好。

进一步核对

参考资料与核对入口