【数据】前端数据指标

704 阅读4分钟

性能数据监控

延迟与用户反应
0 - 16 毫秒流畅;人们特别擅长跟踪运动,如果动画不流畅,他们就会对运动心生反感。 用户可以感知每秒渲染 60 帧的平滑动画转场。也就是每帧 16 毫秒(包括浏览器将新帧绘制到屏幕上所需的时间),留给应用大约 10 毫秒的时间来生成一帧。
0 - 100 毫秒快,在此时间窗口内响应用户操作,他们会觉得可以立即获得结果。时间再长,操作与反应之间的连接就会中断。
100 - 300 毫秒可感觉慢,需要loading,用户会遇到轻微可觉察的延迟。
300 - 1000 毫秒慢,需要做loading和占位。在此窗口内,延迟感觉像是任务自然和持续发展的一部分。对于网络上的大多数用户,加载页面或更改视图代表着一个任务。
1000+ 毫秒很慢,超过 1 秒,用户的注意力将离开他们正在执行的任务。
10,000+ 毫秒放弃,用户感到失望,可能会放弃任务;之后他们或许不会再回来。

1、首屏加载如果超过1s需要添加骨架屏或者loading等,增加用户等待时间

2、用户操作100ms以内相应,不会有断裂感,超过300ms用户会察觉延迟

3、动画16ms一帧,但是浏览器需要时间用于绘制,所以10ms来执行代码,低于60帧会有丢帧的问题

渲染性能(developers.google.com/web/fundame…

关键渲染路径(developers.google.com/web/fundame…

加载性能指标

  • 秒开率:页面首屏加载时间小于1s的比例,也就是页面加载到onload事件触发时所消耗的时间
  • FP(first paint)页面首次绘制 和 FCP (first cotent paint)页面内容首次绘制,FP(首次绘制)包括了任何用户自定义的背景绘制,它是首先将像素绘制到屏幕的时刻。FCP(首次内容绘制)是浏览器将第一个 DOM 渲染到屏幕的时间。该指标报告了浏览器首次呈现任何文本、图像、画布或者 SVG 的时间。这两个指标其实指示了我们通常所说的白屏时间。
  • FMP(first meaningful paint)首次有意义的绘制,页面可用性的度量标准
  • TTFB(time to first byte)受自己时间,从浏览器发送第一个请求到数据返回第一个字节所消耗的时间,包括网络时间、后端处理时间,是链路数据的总和参考标准

增加监控秒开率

稳定性指标

  • 资源错误:静态资源加载错误:404、资源地址不正确、远程服务异常
  • JS错误:error
  • crash:页面摆平不展示内容
  • 内存堆栈:监控页面内存和堆栈使用情况,常见如页面内存泄露等原因会直接导致APP闪退
  • 接口错误:接口挂了、超时、返回错误信息等

操作体验指标

  • 响应延迟:页面响应超过100ms,统计用户交互操作后的浏览器响应时间(www.udacity.com/
  • 卡顿:执行时间超过50ms的任务,会造成卡顿,long task(w3c.github.io/longtasks/
  • 滚动流畅度:页面开始滚动时间差,小与100ms才能体验流畅
  • 动画流畅度:检测动画开始和结束,计算帧率,每帧小于10ms才流畅
  • TTI(time to interactive) 可交互时间,页面渲染除内容,用户可输入的时间(docs.google.com/document/d/…
  • FID(first input delay)首次输入延迟,用户首次和页面交互到页面响应交互的时间。一般都是因为主线程阻塞,会导致响应慢。这个指标反映用户对当前页面的第一感觉,比如html渲染出来一个输入框,用点了输入框页面却没有响应,卡了一下才能输入内容,这个卡的时间就是FID(web.dev/fid/

计算一定时间内动画的平均帧率

前端页面性能指标数据计算方法

前端页面性能指标数据采集架构

前端网页加载渲染链路优化

前端极致性能体验编码框架优化

编程代码优化

  • 首屏渲染和PRPL
  • 懒加载组件
  • 滚动加载分页组件
  • web worker
  • task拆分
  • 代码分割与打包
  • 项目架构优化

文献