还在为网站响应慢但是无从下手而苦恼吗?迟来的元旦福利来了,读完这篇文章,不管多慢的网站,都给他优化的像你一样快。(承认我夸张了,但是你快是显然的。--)
想要排查网站为什么这么慢,就先要先简单了解下从发起请求到渲染页面经理了哪些过程。
1、请求 URL。
2、查询本地缓存,无缓存则请求 DNS,获取服务器地址。
3、tcp 连接,发送 http 请求。
4、服务器处理请求并响应。
5、断开 tcp。
6、渲染页面。
大概过程就是这么滴,咱们来挑主要的来说。比如网络慢、服务器性能低这种显而易见的就不说了,这些怎么能说明咱们优秀呢。当然,如果存在缓存的话,也有可能是缓存失效造成,可以多请求几次,判断是否和缓存有关系。
1、程序执行慢。其实这个也不是很好排查,但是一般优先考虑两方面:代码逻辑 + 数据库查询。
- 代码逻辑。
1、没有什么快捷的方法,将任务分解为多个子任务来进行测试从而确认比较拖后腿的模块,找到后直接就是干,把逻辑中过多的循环计算、正则匹配等干掉,没准你的程序就快了不少呢。
2、查看是否存在死锁、阻塞问题,针对一些不必要实时响应的功能,异步处理。
- 数据库查询。
优化方向不外乎查询优化,sql 语句优化,查询慢查询日志,explain,添加索引。
2、前端渲染慢。
这就更加粗暴了,打开调试模式,检查加载的 js、jquery等资源和请求的外链响应时间,过慢的话麻溜儿更换路径,万一有更好的呢。
暂时遇到的就这么多了,后期随时补充。疫情期间,注意防护呀。