做网站速度检测时,单变量改动指的是同一时间只改变一个影响速度的因素,其余条件保持一致,再对比改动前后的检测结果。它的价值不在于一次测很多项,而在于让某个因素与速度变化之间的对应关系尽量清楚。若同时改压缩、缓存、图片和脚本,即使速度提升,也很难判断是哪一项起了作用。因此设计单变量改动的核心,是先确定一个待验证因素,再固定检测条件,最后比较两种处理方案的代价与适用条件。
网站速度检测能观察的指标很多,例如首次字节时间、首次内容绘制、最大内容绘制、总阻塞时间、累计布局偏移等。单变量改动不能把这些指标全部当成改动对象,而应先选一个具体因素,例如图片是否压缩、静态资源是否启用缓存、首屏脚本是否延迟加载。选择时看两点:该因素是否可控,以及改动后是否能用现有检测工具观察差异。
如果因素之间互相牵连,例如压缩图片会同时改变资源体积和请求数量,就要把改动范围限定在图片文件本身,不额外调整请求合并或缓存策略,否则变量就不再单一。
单变量改动通常有两种处理方案:一种是改前与改后对比,另一种是两组条件并行对比。它们不是谁更高级,而是适用条件不同。
如果站点流量小、检测工具只能手动触发,改前改后对比更容易执行;如果站点有稳定测试环境,并行对比更能排除时段波动。选择依据不是方案名称,而是你能否控制检测条件。
网站速度检测的结果会受网络、设备、地理位置、缓存和第三方资源影响。设计单变量改动时,应尽量固定这些条件:
例如假设某页面只调整首屏图片格式,其他资源不动。检测时若同时开启了新的缓存规则,那么即使最大内容绘制时间缩短,也无法确认是图片格式还是缓存规则带来的变化。此时应回退缓存规则,或把缓存规则作为下一轮单独变量。
可以按以下步骤推进:
判断结果时要注意:速度指标受多种因素影响,单次变快不等于该改动一定有效,单次变慢也不等于该改动一定有害。需要结合多次检测、检测口径和页面实际内容综合判断。
如果只能在一个线上环境操作,优先采用改前改后对比,但要接受它更容易受时段和缓存影响。如果有测试页或分流能力,优先采用并行对比,代价是准备成本更高,但结论更稳。无论选哪种,都不要在同一轮里同时改图片、脚本和缓存。下一步可以先列出当前最想验证的一个速度因素,再按上面的步骤做一轮只改这一项的检测。