Web性能评价指标

同一个网站,有的用户说好用,有的用户投诉慢,Web性能差吗?

从用户角度出发,收集用户的使用反馈,很多吐槽都提到了慢,经调研用户最关注的是速度,所以Web性能主要指网站加载、响应速度。它包括客观的指标和用户在访问应用时所感受到的性能情况。主观的用户性能感知受到用户设备、网速快慢和用户的主观感受影响,导致性能是相对的。

而谈论性能,重要的是精确,并且根据能够进行定量测量的客观标准来论及性能。通过什么信息来分析系统性能,如何判定好坏? Google提供了思考性能问题的方法论,以用户为中心的性能模型 - RAIL。

RAIL性能模型

用户感知到的“性能”是什么?

将用户体验根据关键动作分为4个独立的模块:response (响应)、animation(动画)、idle(浏览器空置状态)和load(加载),结合用户对时间的感知,明确了对用户体验影响最大的性能目标。

如果在每个模块上,都可以达到性能优化的目标值,那么最终用户感受到的将会是极致的体验。

目标与准则

  1. Response 100ms内完成交互50ms内处理完事件对耗时长的操作提供即时反馈,比如说“加载中”的标识。如果用户点击后没有得到任何反馈,用户会质疑系统是否有问题
  2. Animation 流畅的视觉效果动画并不止酷炫的效果,只要是视图变化都算动画,包括滚动,拖拽16ms内生成一帧,达到60fps
  3. Idle 即时响应用户尽可能增加空闲时间利用空闲时间始终以用户操作为最高优先级
  4. Load 5s内可操作1s内渲染出主要内容如果无法快速展示页面全部内容,可以逐步渲染,使其看起来渲染快

与用户体验相关的关键性能指标

RAIL性能模型提供了分析系统性能的思路,与用户体验相关的关键性能指标和实现目标的准则建议。了解用户对不同关键动作所期望的性能,使用Chrome DevTools对加载或运行时的活动进行深入分析,识别性能问题。

Google又提出了更明细的以用户为中心的性能指标,帮助我们更好的了解真实用户对Web的整体体验。

以用户为中心的性能指标

如何定义性能指标?

从用户角度出发,考虑以下关键问题,从用户体验和关心的关键节点定义性能指标

性能指标

来源:https://www.lambdatest.com/blog/core-web-vitals-expert-tips-to-improve-website-performance/

从程序员角度解读

下图展示了加载一个页面,浏览器主线程和网络的使用情况,以及各个指标的耗时。

  1. 用户访问页面,导航开始,浏览器与服务器建立连接,获取HTML资源,再发出数个网络请求来获取所需的js,css资源。
  2. 这些资源下载完毕后,会在主线程上解析处理执行。这就导致主线程会阶段性地处于忙碌状态(图中米黄色任务块)。
  3. DOM树构建完成后,开始绘制,页面渲染出部分内容。首次内容绘制节点即为FCP。
  4. 如果用户在FCP后尝试与页面进行交互(例如单击一个按钮),由于主线程正处于忙碌状态,响应会有一段延迟,延迟的这段时间即为首次输入延迟FID。用户会将较长的延迟认为页面响应缓慢或者页面已损坏,因此很可能直接离开。
  5. 5秒安静窗口:没有长任务切不超过两个正在处理的网络GET请求,此时浏览器主线程空闲并能可靠地响应用户。
  6. 可交互时间TTI是安静窗口前的最后一个长任务的结束时间,是页面从开始加载到主要子资源完成渲染,并能够快速、可靠地响应用户输入所需的时间。TTI越小越好,说明用户等待的时间短。
  7. 用户收到的阻塞程度则由TTB来体现,每当出现长任务(在主线程上运行超过 50 毫秒的任务)时,主线程都被视作"阻塞状态",浏览器无法中断正在进行的任务,长任务超过 50 毫秒的部分为阻塞时间,总阻塞时间是在 FCP 和 TTI 之间发生的每个长任务的阻塞时间总和,体现了不可交互程度的严重性。

图片来源:https://web.dev/fid/

指标阈值

Google将用户体验的质量分为三个等级:好、需要改进或差,并设置了以下阈值:

图片来源:https://developers.google.com/speed/docs/insights/v5/about

这些阈值可以作为行业性能基线,比较我们系统性能指标得分和这些阈值可以了解我们系统对应性能指标的好坏。

自定义性能指标

以用户为中心的性能指标提供了很好的性能基线,但很多情况我们需要测量更多的指标来刻画网站的完整体验。例如:

根据系统和需要评估的性能,自定义性能指标,更全面地衡量系统性能。

小结

遇见用户抱怨性能时,不要先入为主地判定性能差,逐个排查系统可能有的性能问题,优化非最佳实践。而应该理性地以用户为中心,收集真实用户数据,衡量系统性能好坏。

从RAIL性能模型中我们了解用户眼中的性能意味着什么。用户对性能延迟的感知,Web应用生命周期中的关键动作响应、动画,空闲,加载的期望阈值,与用户体验相关的关键性能指标。

以用户为中心的性能指标更深入地展示了用户在访问页面各个阶段的体验和预期。

还可以自定义性能指标,定制化衡量我们系统的性能。

性能的好坏并不能由某一个性能指标所决定,它是综合复杂的,需要结合所有性能指标并基于权重来计算最终性能得分。

了解Web性能指标,有助于我们理解用户眼中的性能,读懂性能数据,才能发现性能瓶颈。



文/Thoughtworks 李玲

更多精彩洞见,请关注公众号Thoughtworks洞见!

展开阅读全文

页面更新:2024-04-07

标签:性能   阈值   主线   性能指标   加载   关键   页面   时间   用户   系统

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top