小熊加速器

订阅决策

平均值相同为何体验仍不同:多设备样本分布、尾延迟与异常值怎么记录

两台设备的平均完成时间接近,不代表它们的等待体验相同。应保留逐次样本,同时报告中位数、高分位、样本数与测试条件;浏览器缓冲丢项、路径变化和后台状态也要作为测量边界记录。

手机连续打开同一组页面二十次,十九次都很快,却有一次停了数秒;电脑每次略慢,几乎没有突发停顿。汇总后,两边的平均完成时间可能非常接近。若记录表只留下这两个平均值,最影响使用感受的差异反而消失了。

这不是说平均数错误,而是它只回答全部数值相加再均分后落在哪里。多设备体验还需要回答典型一次要等多久、较慢的一小部分会拖到哪里、样本是否缺失,以及测试条件有没有在途中改变。把这些问题拆开,比较才有复核价值。

相同平均值可以来自完全不同的分布

设手机十次耗时中九次约一秒,另一次为十秒;电脑十次都接近两秒。两组平均数可能接近,但前者多数时候更快,偶尔却出现明显长尾,后者则比较稳定。一个中心数值无法同时表达频率和尾部。

NIST 的工程统计手册区分平均数与中位数。偏斜分布的平均数会朝较重的尾部移动,重尾中的极端值甚至可能让平均数远离多数样本。中位数依据排序位置,受到单个极端值的方式不同。因此,先并列平均数和中位数,就能看见“整体被少数慢样本拉长”这种迹象。

迹象不是结论。如果手机的中位数较低、平均数较高,只能说明样本不对称,不能直接断言无线网络故障。后台唤醒、页面冷缓存、系统调度、网络切换和测量代码漏记,都可能形成相似外观。

高分位回答尾部落在哪里

分位数先把样本从小到大排序。50 分位就是中位数;P90 可理解为按选定算法估计后,大约九成样本不高于的数值。平均数和中位数描述中心,高分位则把观察重点移到较慢一端。对于“偶尔卡很久”的问题,P90 或 P95 通常比只看平均数更接近提问本身。

分位数也有使用条件。NIST 明确指出,目标分位未必正好对应某个样本点,需要插值,而实践中存在多种计算方法。十个样本计算 P95 时,结果常常紧贴最大值;换一种插值规则还可能得到不同数字。因此记录表必须写样本数、分位名称和算法,不能只写一个看似精确的毫秒值。

样本增加的意义是让尾部估计不再由一两个点决定,但增加次数不等于自动消除偏差。若所有手机测试都在晚间进行,电脑测试都在上午进行,即使各做一百次,也混入了时段差异。先让条件可比,再谈样本数量。

延迟、延迟变化与页面耗时不是同一个量

IETF 的 RFC 5481 说明,延迟变化建立在单向包延迟之上。IPDV 比较相邻发送序列中的包,PDV 通常把样本内最小单向延迟作为共同参考。两种定义使用不同参照,适合回答的问题也不同。规范建议按分布和分位数报告,并强调原始单次测量有助于之后重新计算。

浏览器里测到的资源时间或页面完成时间,包含连接、请求、响应、解析和主线程工作等环节,不能直接当成上述包级指标。往返时间变小而页面仍慢,可能是内容或执行阶段占用时间;页面完成时间变快,也不证明路径的包延迟变化变小。实验表的指标栏应写清起点、终点和单位,避免把名称相近的数字放进同一列比较。

高分位上升同样不是归因工具。它证明较慢一端发生变化,却没有指出变化来自排队、无线竞争、路径切换还是设备调度。要寻找原因,需要看条件字段是否与慢样本同步变化,必要时再做只改变一个条件的对照。

浏览器记录本身也可能缺样本

W3C Performance Timeline 为不同性能条目类型设置缓冲区。缓冲并非无限保存;规范维护丢失条目计数,并允许 PerformanceObserver 回调取得 droppedEntriesCount。某台设备少了几条资源记录,不能直接解释为它完成得更快,也可能只是缓冲已满或观察器启动得太晚。

两台设备应运行同一版本的采样代码,先记录浏览器支持的条目类型,再固定观察器注册时机。每轮保存预计条目数、实际条目数和丢项计数。只要发生丢项,该轮总量和分位统计就要标记为不完整,而不是静默纳入排名。

buffered 选项可以在对应条目支持时交付此前缓存的记录,但它不是无限回溯机制。不同浏览器是否支持某种条目,也属于测量条件。支持列表不同的两组数据,可以分别分析,不能假装字段完全一致。

多设备对照先固定条件,再保留变化

一轮实用对照至少固定目标页面版本、采样脚本、测试次数、开始间隔和浏览器前后台状态。网络类型要分别标记 Wi-Fi、蜂窝或有线;缓存条件要区分首次访问与重复访问;若中途切换网络,另起一组,不要把切换前后混成同一分布。

设备型号和系统版本值得保留,但不要把它们写成预设原因。记录的目的,是让后来的人能够重现同一条件,并检查慢样本是否集中在某个状态。若手机慢样本全出现在从后台回到前台之后,下一轮可以固定前台运行;若电脑差异随冷缓存消失,下一轮则单独控制缓存。每次只改变一个主要条件,因果判断才不会被多项变化缠在一起。

推荐记录逐次耗时,而不是测试结束后只抄统计摘要。每一行包含设备、样本序号、时间戳、指标定义、原始值、网络、缓存、前后台状态、观察器丢项和异常备注。汇总页再计算样本数、缺失数、中位数、P90 或 P95,以及最小值到高分位的范围。

异常值要解释,不能为了好看删除

极慢样本可能是录入错误,也可能正是读者关心的尾延迟。回看原始记录时,要判断计时是否跨过设备休眠,目标页面是否换版,网络是否断开,性能条目是否缺失。能确认测量程序失效时,可以排除,但要保留原值、排除理由和排除后的重新计算。

无法确认原因的慢样本应继续留在主结果中,同时另做一份敏感度比较,展示包含与不包含该点时中位数和高分位如何变化。这样既不会让单点吞没全部讨论,也不会因结果难看而抹去真实风险。

最终可支持的结论应写得克制:在已记录条件下,哪台设备的典型等待较短,哪一组的尾部更长,缺失记录是否影响比较,改变某个条件后分布有没有同步移动。它不能证明未来每次体验,也不能仅凭 P95 把责任归给运营商、设备或浏览器。

平均值仍可保留,但它不再独自代表体验。原始样本给出复核路径,中位数说明典型位置,高分位展示尾部,条件与丢项记录划出证据边界。只有这些信息同时存在,两台设备看似接近的数字才会变成可以解释、可以重做的实验。

资料来源

  • National Institute of Standards and Technology:《Measures of Location》,发布或更新于 2024-06-18
  • National Institute of Standards and Technology:《Percentiles》,发布或更新于 2024-06-18
  • RFC Editor:《RFC 5481: Packet Delay Variation Applicability Statement》,发布或更新于 2009-03-01
  • World Wide Web Consortium:《Performance Timeline》,发布或更新于 2025-04-03