1、先是一个用户慢,还是一群用户慢还是全部用户慢?
一个用户慢:个人客户端网络宽带不足、本机CPU或内存被占满
一群用户慢:找寻共同慢的特性
全部用户慢:进行接下来的判断
2、再判断是不是单个接口响应比较慢?是的话定位具体的业务
如果不是,先看前端页面渲染耗时,前端的性能问题一般有:
1)JS阻塞请求,写的js代码出现问题,解析就会花费很长时间,这两个js请求之间会出现一个很大的空隙,就会导致这段时间的资源加载都被阻塞住
2)接收数据时间过长,http请求的大部分时间应该花在后面几个阶段,比如等待响应和接收数据。但是,如果接收数据的时间太长了,长到数百毫秒甚至以秒计算的时候,那也是有问题的。这种情况一般是因为下载的内容太重了,例如大图片、大脚本等。这类问题可以使用GZIP压缩、图片压缩或者JS/CSS的minify等手段来解决。
3)加载某个资源太慢,如果某个请求比其他的请求多出很多的时间,那么一般情况就是某个资源的加载太慢,导致了整个网页变慢,原因有可能是1)资源在第三方站点上,他们很慢;2)这个资源太大了;3)这个资源使用的域名有问题
4)前端页面请求的资源过多,onload之前如果有几百行,速度自然会慢的,如果请求的资源不存在,那么速度将会更慢
5)网页本身中包含了追踪或者是分析用户的工具,从而导致网页的加载时间变的慢,比如之前海盗湾中会给用户的电脑插入挖矿的js脚本
6)后端代码问题,主要有代码冗余、数据库发生锁死、动态请求时间过长等,这就需要RD优化
3、必要时引入性能测试,编写性能测试脚本复现问题