0%

浅谈 lighthouse 与网页性能测试

今天在写人机交互课程的实验报告,复习了一下之前学到的 web 性能分析的方法,然后突发奇想也给我的网页做了个性能测试,当然结果很不乐观(

网页性能分析的重要性

简单来说,一方面,提高用户体验;另一方面,提高网页的 SEO 排名。

整体分析

先来看整体的分析情况,Performance 是 61 分,SEO 是 97 分。

性能只能说很不理想,但是可惜的是我没有在新建博客的第一时间就先测一下,以至于我不太清楚影响性能的是 hexo + next 本身的问题,还是因为我后来做的美化导致的。另一方面 hexo 是模板建站,我对于里面的源码基本毫不了解,想要优化也不知道从何做起。总之先来看看这 6 个指标吧。

lighthouse 分析网页的六大指标

简单介绍一下这 6 个指标:

FCP

FCP(First Content Paint),即首次内容绘制,是指浏览器从响应用户输入网络地址,在页面首次绘制文本,图片(包括背景图)、非白色的 canvas 或者 svg 之间的这段时间。以往的话,一般还会提到像 FP(First Paint)、FMP(First Meaning Paint)这两个概念,不过现在已经被 lighthouse 废弃了,FP 指标可以通过 Performance 获取。

TTI

TTI(Time to Interactive),即可交互时间,指的是网页第一次达到可以交互状态的时间,可交互状态的 UI 组件可以交互,而且页面已经达到了相对稳定流畅的程度。

说到 TTI 一般还会提到 RAIL 性能模型,包含四个指标,分别是 Response (响应)、Animation(动画)、Idle(空置状态)和 Load(加载)。

  • Response:如果用户点击了一个按钮,你需要保证在用户察觉出延迟之前就得到反馈。只要有输入,这个原则就适用。如果没有在合理的时窗内完成响应,,用户就会察觉到这个延迟,一般而言在这个时间会被定为 100 毫秒。另外,如果用户等待时间可能超出 500ms 的话,需要加上 loading 动画来缓解用户的紧张焦虑。

  • Animation:如果动画帧率发生变化,用户很可能会注意到。一般而言,web 性能优化的目标是达到每秒生成 60 帧。谈到 Animation,就会想起浏览器的渲染流程。

    一般来说渲染流程会被分为这四步,明天的主要笔记内容大概会与此相关;今天主要谈 web 性能测试,就先不细说这部分了。

  • Idle:可以利用空闲的时间来完成被推迟了的工作。例如,尽可能减少预加载数据,然后利用空闲时间加载剩余的数据。

  • Load:最终目标是能够在 1000 毫秒以内呈现页面内容,这方面涉及到关键路径的优化问题,我也放到明天再谈。注意这里 1s 内并不需要渲染出所有的页面内容,可以把还未完成的任务留到空闲时间继续完成。

SI

SI(Speed Index),即首屏时间,代表页面内容渲染所消耗的时间。优化 Speed Index 一般从两方面入手:优化内容效率和优化关键渲染路径。SI 低于 4s 则表示页面加载速度较优。

TBT

TBT(Total Blocking Time)是衡量用户事件响应的指标。TBT会统计在FCP和TTI时间之间,主线程被阻塞的时间总和。当主线程被阻塞超过 50ms 导致用户事件无法响应,这样的阻塞时长就会被统计到TBT中。TBT越小说明页面能够更好的快速响应用户事件。

LCP

LCP(Largest Content Paintful)是一个页面加载时长的技术指标,用于表示当前页面中占比最大的内容显示出来的时间点。它可以代表当前页面主要内容展示的时间。LCP低于 2.5s 则表示页面加载速度较优。

CLS

CLS(Cumulative Layout Shift)是一个衡量页面内容是否稳定的指标,CLS会将页面加载过程中非预期的页面布局的累积。CLS的分数越低,表明页面的布局稳定性越高,通常低于0.1表示页面稳定性良好。

lighthouse 的优势

lighthouse 在指出性能不足之处的时候,一般还会具体指出哪些地方可以进行优化,例如这次分析,

后续

接下来我先考虑的是要把之前鼠标的交互动画减少一些,然后想办法压缩一下静态资源。去除无用 CSS 和 JS 稍微有些难办,因为里面的代码对我来说就像一个黑盒一样,我也没有足够的课余时间去阅读源码。

参考文章:
https://www.cnblogs.com/frank-link/p/15243695.html
https://www.cnblogs.com/loveyt/p/13582359.html
https://blog.csdn.net/m0_37411791/article/details/106394219
https://zhuanlan.zhihu.com/p/20276064

本文标题:浅谈 lighthouse 与网页性能测试

文章作者:Flower-F

发布时间:2021年12月02日 - 13:03

最后更新:2022年01月19日 - 16:40

-------------本文结束,感谢您的阅读-------------

欢迎关注我的其它发布渠道