提高网页加载速度
提高网页加载速度,最常见的做法是先压图片。可压图只影响最后一段。
一次请求分五段:dns、tcp、tls、ttfb、下载。四个常见说法,各自只对其中一段有效。
| 说法 | 只对哪一段有效 | 该先看什么 |
|---|---|---|
| 压图片 | 下载 | 下载段是不是最长 |
| 加带宽 | 下载 | 前四段是否已经短 |
| 上 CDN | tcp / tls、就近分发 | 是否只有少部分地区慢 |
| 感觉快了 | 全部 | 有没有同组对照 |
「先把图片压一遍,肯定能快」
压图对下载段有效。下载段不是最长那段,压了也白压。
这是最常见的一步白干。
判据:跑一次五段,看下载是不是最长。
下载最长:压图、减请求,方向对。改完看下载段有没有降。
下载很短、前三段长:压图压到极限也没用。
先跑一条命令:
`` curl -o /dev/null -s -w 'dns=%{time_namelookup} conn=%{time_connect} tls=%{time_appconnect} ttfb=%{time_starttransfer} total=%{time_total}\n' https://你的域名 ``
五个数是累计值,段耗时要相减。
「买更大带宽,页面就快了」
带宽同样只作用在下载段。它不加快服务端计算。
前四段长的时候,带宽再大,请求还在路上排队。
判据:四段都短、只有下载长,才轮到带宽。
这一类更该先减请求数,再谈带宽。
请求数降下来,下载段跟着降,钱也省了。
加带宽是最后一步,不是第一步。
「上 CDN 就一定比现在快」
CDN 改的是 tcp 和 tls 这两段,以及就近分发。它不改页面体积。
全国都慢的时候,上 CDN 收益最大。
只有一两个省慢的时候,先查那一条链路。
用宝塔拨测的网站测速跑多地区节点,分组一开就能看出来。
判据:按地区分组,看慢的是不是集中在一片。
集中一片:那条链路的事,改 CDN 配置没用。
分散各地:才轮到 CDN 和缓存。顺序别反。
「改完感觉快了,就是改对了」
感觉会被时段、缓存、设备状态影响。三个人看同一页,感受都可能不同。
判据只有一个:同一组节点、同一时段、同一条 url,改前改后各测三次。
三次都降,才算改对。只降一次,先记着。三次全不一样,说明基线不稳。
同时改两处,下一次测速说明不了是谁起的作用。
反过来,如果有人先压了图片、又换了 CDN,最后说「快了一倍」,这个结论其实站不住——两处一起动,谁起的作用说不清。