自动化 Web 性能优化分析方案

2023-06-04 0 255

在构筑 Web 公交站点的操作过程中,任何两个技术细节都有可能影响中文网站的网络流量。果开发人员不了解后端操控性相关知识,很多不利中文网站网络流量的因素会新浪网上形成加总,从而严重影响中文网站的操控性,导致中文网站网络流量减慢、使用者新体验低落,最终导致使用者外流。页面操控性对页面而言,虽说极其重要。因此,对页面的操控性展开检验预测,是开发人员不可忽视的研究课题。那么他们怎样对页面展开监视预测及操控性评判标准?对操控性评判标准的准则又是怎样的呢?从技术方面来说,后端操控性监视主要分为两种方式,一类叫做制备监视(Synthetic Monitoring,SYN),另一类是真实世界使用者监视(Real User Monitoring,RUM)。制备监视,是在一个演示情景里,去递交两个需要做操控性检验的页面,透过一连串的辅助工具、准则去运转你的页面,抽取一些操控性指标,得出两个操控性报告。真实世界使用者监视,是使用者在他们的页面上下载,下载操作过程就会产生各式各样的操控性统计数据,我们把这些操控性统计数据上传至他们的笔记服务器上,展开统计数据的抽取冲洗研磨,最后在他们的监视平台上展开展现的两个操作过程前者著重“检验”,后者著重“监视”。Nenon将从多个各方面,向大家介绍政采云后端 ZooTeam 的 Web 操控性强化预测控制系统—— “百策”,是怎样搜集页面操控性统计数据,并透过一连串计算研磨,工业生产页面操控性财务报表的。百策,起名自历史人物房玄龄。房玄龄,字玄成。唐高宗李渊的谏臣,因勇于谏言,被称作诤臣。因多次指出唐高宗李渊的过失并能提出有效政策,因为被称作 “魏百策”。

怎样搜集页面操控性统计数据

百策控制系统采用了Courtomer提到的 “制备监视” 的计划,得到了几组与寄主环境毫无关系的操控性统计数据。说到制备监视计划,要数 Google Chrome 项目组公司出品的开放源码智能化预测辅助工具 Lighthouse。

Lighthouse 的组织工作业务流程有几个主要的关键步骤。部分关键步骤发生在下载器中,其余的关键步骤由 Lighthouse 运转器执行。

Lighthouse 组织工作原理

自动化 Web 性能优化分析方案下面是 Lighthouse 的组成部分:驱动 和 Chrome Debugging Protocol 展开可视化。过滤器使用BIOS搜集页面信息。最优化预处理。过滤器的输出结果被称作Artifact审查器Artifact 作为输入,审查器会对其运转 1 个测试,然后分配透过/失败/得分的结果。类别将审查的结果分组到面向使用者的报告中(如最佳实践)。对该部分加权求和然后得出评分。简单来说业务流程是:建立连接 -> 搜集笔记 -> 预测 -> 生成报告。而他们的百策控制系统是在 Lighthouse 的基础上,展开了部分功能的定制和创新。

区别于 Lighthouse 的功能

1)使用 PuppeteerPuppeteer 是两个 Node 库,它提供了两个高级 API 来透过 DevTools 协议控制 Chromium 或 Chrome。相比较 Selenium 或是 PhantomJs ,它最大的特点是它的 DOM 操作可以完全在内存中展开演示,即在 V8 引擎中处理而不打开下载器,而且 V8 引擎 Chrome 项目组在维护,会拥有更好的兼容性和前景。运转下面这段代码就const puppeteer = require(puppeteer

);

(async () =>

 {

  const browser = await

 puppeteer.launch();

  const page = await

 browser.newPage();

  await page.goto(https://example.com

);

  const dimensions = awaitpage.evaluate(() =>

 {

    return

 {

      widthdocument

.documentElement.clientWidth,

      heightdocument

.documentElement.clientHeight

    };

  });

  console.log(Dimensions:

, dimensions);

  await

 browser.close();

})();

Lighthouse 的计划是使用更底层的 DevTools 协议和下载器可视化,他们选择 Puppeteer 是因为其更简单,封装的一些常用的接口足够满足他们的需求。2)访问页面前演示登录他们不仅需要检验可匿名访问的前台页面,也需要检验登录后才能操作的后台页面。所以在检验前,他们需要增加一步登录操作。当然这个使用者名密码也是可选的,当检验到这个 URL 需要登录时,才会提醒使用者输入使用者名密码。自动化 Web 性能优化分析方案3)搜集到统计数据存入统计数据库他们将每一次的检验统计数据保存入库,对统计数据登录检验 -> 搜集笔记 -> 统计数据入库 -> 预测 -> 生成报告

怎样预测页面操控性

定制各项指标

控制系统设计初期,他们拟定了一连串操控性指标的权重和阈值:自动化 Web 性能优化分析方案Lighthouse 也制定了很多操控性指标,譬如:uses-webp-images:采用新一代格式提供图片dom-size:DOM 节点总数network-requests:页面加载完成时的请求数……

除此之外他们定制了更多的特色指标,譬如:OSS 图片是否使用了压缩后缀。

由于公司的图片都是放在阿里云 OSS 上的,阿里云 OSS 提供了很方便的强化图片体积的方法,是给图片的末尾加上类似参数 ?x-oss-process=image/resize,w_187/quality,Q_75/format,webp,理论上放在 OSS 上的图片都需要添加压缩后缀。为什么说是理论上呢?因为他们发现如果图片上传 OSS 前,事先经过了其他压缩辅助工具的压缩,再添加压缩后缀后,图片的体积变化不大,甚至会出现负增长。所以他们调整了评审算法,不再是简单地检查图片是否增加了 OSS 后缀,而是比较当前图片的体积与添加 OSS 压缩后缀后体积的差值是否超出比例。

定制检验模型

检验控制系统试运转一段时间后,他们发现并不是所有的指标都适用于所有类型的页面。譬如他们的前台页面加载图片很多且对图片分辨率要求较高、而后台页面图片则比较少。他们既有传统的后端渲染 + jQuery 类型的页面、客户端渲染 React 页面、也有经过预渲染的 Vue 页面。

将所有类型的页面按同一标准展开检验显然不太合适,所以他们引入了检验模型 的概念。他们根据页面所属的类型,按照对应检验模型展开操控性检验。两个检验模型可以关联多个指标,并可以配置指标权重和级别。

自动化 Web 性能优化分析方案权重越大扣分越多,级别分为 error 和 warning,其中 warning 级别的扣分项不算入总分中,譬如请求是否使用 Gzip 是,因为这一项是后端无法强化的,需要推动服务端去改进。

计算页面评分

自动化 Web 性能优化分析方案

提供强化建议和趋势

强化建议

针对每项扣分的审查项,他们都提供了详细的扣分原因,以及对应的解决计划:自动化 Web 性能优化分析方案

页面操控性趋势变化图

除了开发新的功能,他们还积极地对老页面展开重构,为了预测重构前后的收益,他们还提供了查询历史统计数据和变化趋势的功能:自动化 Web 性能优化分析方案自动化 Web 性能优化分析方案

总结

百策控制系统为后端页面提供操控性强化预测服务,结合行业计划及业务情景的差异性,完善符合公司业务情况的最佳实践,百策控制系统制定了一套 Web 页面操控性的检验标准,透过页面检验及模型预测,发现页面中请求耗时过长、请求资源过大、页面结构不合理等影响使用者新体验的问题,并针对问题提供相应的强化建议,帮助开发人员工业生产渲染速度更快、资源占有更少、新体验更好的页面。

自动化 Web 性能优化分析方案

告诉我,你在看

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务