原文 基于正态分布的前端性能数据分析(一)

前言

公司的前端项目是上报了各项性能数据的,如首屏时间、onload时间、网络用时等;由于用户可能处于各类环境中,如不同的网络环境、机型差异、同一手机的不同运行状态等,导致性能数据会有较大的波动,而这些异常数据对平均值的影响是非常大的,因此不能简单地用平均值描述性能状况,而应该做更加深入地分析数据。
通过对性能数据的统计分析,我们希望得到性能数据的分布情况,监控上线前后的性能变化,甚至运行期间的性能波动,分析原因出在哪个环节,从而有针对性地优化项目;并且针对每一次优化,我们能够定量地确定优化成效有多大,而不是“嗯,好像优化有效果,在我的电脑上都变快了”
ps:由于不是专业做数据分析的,分析过程如果有不合理的地方,欢迎指正。

探索

由于我们主要关注用户的首屏时间,因此我这里拿到了一周内首屏数据的抽样结果(约13万条),为了了解首屏时间的分布情况,我以50ms为间距统计各个时间段内的数据量,绘制折线图结果如下:

clipboard.png

可以看到数据分布比较对称,曲线呈钟形,数据主要集中在550ms附近。
在传统的统计分析当中,很多时候我们都希望用正态分布来分析数据,就算不符合正态分布的数据,也有可能将原始数据转换为正态数据。
从上图可以看到,我们的数据是比较符合正态分布的特征的,因此我们可以尝试使用正态分布来分析。
由于segmentfault对数学公式支持不太友好,剩余内容请参考原文


whale
649 声望39 粉丝

Enjoy programming