浏览器原理 38 # 加载阶段性能:使用 Audits(Lighthouse) 来优化 Web 性能

简介: 浏览器原理 38 # 加载阶段性能:使用 Audits(Lighthouse) 来优化 Web 性能

说明

浏览器工作原理与实践专栏学习笔记



什么是 Web 性能?

Web performance:https://en.wikipedia.org/wiki/Web_performance


Web 性能描述了 Web 应用在浏览器上的加载和显示的速度。


20210624182621229.png

性能检测工具:Performance vs Audits

Performance 和 Audits,它们能够准确统计页面在加载阶段和运行阶段的一些核心数据,诸如任务执行记录、首屏展示花费的时长等,有了这些数据我们就能很容易定位到 Web 应用的性能瓶颈 。



Performance

非常强大,它提供了非常多的运行时数据,利用这些数据我们就可以分析出来 Web 应用的瓶颈。学会起来非常有难度,因为涉及到了特别多的概念,而这些概念又和浏览器的系统架构、消息循环机制、渲染流水线等知识紧密联系在了一起。


Audtis (Lighthouse)

简单许多,它将检测到的细节数据隐藏在背后,只提供给一些直观的性能数据,同时,还会提供一些优化建议。

总的来说:Perfomance 能让我们看到更多细节数据,但是更加复杂,Audits 就比较智能,但是隐藏了更多细节。



检测之前准备工作


配置好工作环境:

   首先准备 Chrome Canary 版的浏览器(稳定版的 Chrome 也行)


       Chrome Canary 是采用最新技术构建的,它的开发者工具和浏览器特性都是最新的

   然后需要在 Chrome 的隐身模式下工作,这样可以确保我们安装的扩展、浏览器缓存、Cookie 等数据不会影响到检测结果。


下载:Google Chrome


20210625144145934.png


安装好就是金色的图标


image.png



利用 Audits(Lighthouse )生成 Web 性能报告


打开 B站 为例


   首先打开浏览器的隐身窗口

   然后在隐身窗口中输入 B 站的网站。


   打开 Chrome 的开发者工具,选择 Audits 标签。


这里说明一下:chrome v83.0.4103.61 的 Audits 升级成 Lighthouse 了。


所以看不到 Audits 标签的,直接看 Lighthouse 标签就行。



Audits(Lighthouse ) 界面


Audits 界面

image.png


升级后的 Lighthouse 界面


2021062516435320.png


监测类型 (Categories):指需要监控哪些内容


   监测并分析 Web 性能 (Performance);

   监测并分析 PWA(Progressive Web App) 程序的性能;

   监测并分析 Web 应用是否采用了最佳实践策略 (Best practices);

   监测并分析是否实施了无障碍功能 (Accessibility),无障碍功能让一些身体有障碍的人可以方便地浏览你的 Web 应用。


   监测并分析 Web 应用是否采实施了 SEO 搜素引擎优化 (SEO)。


设备类型 (Device)


   Moblie:选项是用来模拟移动设备环境的

   Desktop:选项是用来模拟桌面环境的


开始生成报告

配置好选项之后,点击生成报告 (Generate report) 按钮来生成报告

20210625170949296.png


报告生成中


20210625171327222.png


报告生成完毕

20210625171458360.png



解读性能报告

分数的范围:


2021062517362475.png


1.性能指标 (Metrics)

20210625181142716.png



点击 view original trace 按钮会进入:

20210625183716515.png



点击 view treemap 按钮会进入:

20210625183807592.png



2.可优化项 (Opportunities)

页面中的一些可以直接优化的部分:

20210625184341965.png



3.手动诊断 (Diagnostics)

采集了一些可能存在性能问题的指标,这些指标可能会影响到页面的加载性能,需要依据实际情况,来手动排查每一项。


2021062518462667.png


4.运行时设置 (Runtime Settings)

有运行时的一些基本数据,如果选择移动设备模式,可以看到发送网络请求时的 User Agent 会变成设备相关信息,还有会模拟设备的网速,这个体现在网络限速上。


20210625185306383.png





















目录
相关文章
|
13天前
|
Web App开发 JavaScript 前端开发
[译] 用 Web Worker 改善 Vue 组件性能
[译] 用 Web Worker 改善 Vue 组件性能
|
11天前
|
缓存 安全 前端开发
【性能大逆袭】Web2py应用如何从龟速变飞快?六大优化秘籍让你的应用焕然一新!
【8月更文挑战第31天】Web2py是一款备受欢迎的全栈Python Web框架,以其内置的数据库抽象层和安全特性著称。然而,随着应用规模的扩大,性能瓶颈逐渐显现。本文通过对比分析,从代码层面(如减少数据库查询、避免全局变量)到部署策略(如静态文件压缩、CDN加速、选择合适数据库、优化查询、异步处理),全面介绍Web2py应用的性能优化方法及其应用场景。通过具体示例,展示了如何创建并优化一个简单的Web2py应用,旨在帮助开发者构建高效稳定的Web应用。
28 2
|
13天前
|
存储 缓存 前端开发
Servlet与JSP在Java Web应用中的性能调优策略
Servlet与JSP在Java Web应用中的性能调优策略
17 1
|
14天前
|
缓存 NoSQL 数据库
Web服务器与数据库优化:提升系统性能的最佳实践
【8月更文第28天】在现代的Web应用中,Web服务器与后端数据库之间的交互是至关重要的部分。优化这些组件及其相互作用可以显著提高系统的响应速度、吞吐量和可扩展性。本文将探讨几种常见的优化策略,并提供一些具体的代码示例。
30 1
|
15天前
|
缓存 前端开发 JavaScript
超时空加速秘籍:揭秘JavaScript前端开发中的性能魔法,让您的Web应用瞬间穿越到未来!
【8月更文挑战第27天】本文介绍了一系列实用的JavaScript性能优化方法并提供了示例代码,包括减少DOM操作、使用事件委托、避免阻塞主线程、异步加载资源、利用浏览器缓存、代码分割以及使用Service Worker等技术,帮助开发者有效提升Web应用性能和用户体验。
30 2
|
11天前
|
物联网 C# 智能硬件
智能家居新篇章:WPF与物联网的智慧碰撞——通过MQTT协议连接与控制智能设备,打造现代科技生活的完美体验
【8月更文挑战第31天】物联网(IoT)技术的发展使智能家居设备成为现代家庭的一部分。通过物联网,家用电器和传感器可以互联互通,实现远程控制和状态监测等功能。本文将探讨如何在Windows Presentation Foundation(WPF)应用中集成物联网技术,通过具体示例代码展示其实现过程。文章首先介绍了MQTT协议及其在智能家居中的应用,并详细描述了使用Wi-Fi连接方式的原因。随后,通过安装Paho MQTT客户端库并创建MQTT客户端实例,演示了如何编写一个简单的WPF应用程序来控制智能灯泡。
26 0
|
11天前
|
Java 数据库 API
JSF与JPA的史诗级联盟:如何编织数据持久化的华丽织锦,重塑Web应用的荣耀
【8月更文挑战第31天】JavaServer Faces (JSF) 和 Java Persistence API (JPA) 分别是构建Java Web应用的用户界面组件框架和持久化标准。结合使用JSF与JPA,能够打造强大的数据驱动Web应用。首先,通过定义实体类(如`User`)和配置`persistence.xml`来设置JPA环境。然后,在JSF中利用Managed Bean(如`UserBean`)管理业务逻辑,通过`EntityManager`执行数据持久化操作。
21 0
|
11天前
|
API UED 开发者
如何在Uno Platform中轻松实现流畅动画效果——从基础到优化,全方位打造用户友好的动态交互体验!
【8月更文挑战第31天】在开发跨平台应用时,确保用户界面流畅且具吸引力至关重要。Uno Platform 作为多端统一的开发框架,不仅支持跨系统应用开发,还能通过优化实现流畅动画,增强用户体验。本文探讨了Uno Platform中实现流畅动画的多个方面,包括动画基础、性能优化、实践技巧及问题排查,帮助开发者掌握具体优化策略,提升应用质量与用户满意度。通过合理利用故事板、减少布局复杂性、使用硬件加速等技术,结合异步方法与预设缓存技巧,开发者能够创建美观且流畅的动画效果。
34 0
|
11天前
|
数据库 开发者 Python
web应用开发
【9月更文挑战第1天】web应用开发
26 1
|
7天前
|
数据采集 Java 数据挖掘
Java IO异常处理:在Web爬虫开发中的实践
Java IO异常处理:在Web爬虫开发中的实践