Lighthouse(灯塔)—— Chrome 浏览器性能测试工具
1.认识 Lighthouse
Lighthouse 是 Google 开发的一款开源性能测试工具,用于分析网页或 Web 应用的性能、可访问性、最佳实践、安全性以及 SEO 等关键指标。开发人员可以通过 Lighthouse 快速了解网页的性能瓶颈,并基于优化建议进行改进。
核心功能:
- 对页面性能进行全面分析
- 提供优化建议和评分
- 支持多种测试维度,如性能、可访问性、SEO、PWA 等
- 自动化生成测试报告
使用的谷歌浏览器版本:
2.Lighthouse 的三种模式
Lighthouse 提供三种测试模式,每个模式适用于不同场景。以下是每种模式的说明:
模式名称 | 说明 | 局限性 |
---|---|---|
导航模式(默认) | 获取页面性能分数与指标。 评估渐进式 Web 应用功能。 分析页面加载后的可访问性。 | 无法分析表单提交或单页应用的转换。 |
时间跨度模式 | 测量特定时间范围内的性能(如布局偏移、JS 执行时间)。 适合评估长时间使用的页面或 SPA。 | 不提供总分。 无法分析瞬时性能指标,如最大内容绘制 (LCP)。 |
快照模式 | 分析页面当前状态,适用于查找深层次表单或隐藏菜单的可访问性问题。 | 不提供总分。 无法分析 DOM 之外的问题。 |
测试设备选择
Lighthouse 支持两种设备类型:
- 移动设备模拟(默认)
- 桌面设备模拟
3.主要监测指标
Lighthouse 监测多个维度的性能指标,以下是最重要的性能指标说明:
性能(Performance)
指标名称 | 说明 |
---|---|
首次内容绘制 (FCP) | 页面首次绘制 DOM 内容的时间,表示用户第一次看到页面内容的时间点。 |
最大内容绘制 (LCP) | 可视区域中最大内容元素呈现的时间,用于衡量主要内容的加载速度。 |
可交互时间 (TTI) | 页面完全可交互的时间点,表示浏览器可以快速响应用户操作的时刻。 |
总阻塞时间 (TBT) | 页面从首次内容绘制到完全可交互期间的总阻塞时间。 |
累积布局偏移 (CLS) | 页面布局的稳定性指标,衡量意外布局偏移对用户体验的影响。 |
速度指标 (SI) | 衡量页面内容在首屏可见的速度,值越小越佳。 |
可访问性(Accessibility)
检测网页的无障碍设计,包括对屏幕阅读器支持、颜色对比度、表单标签等。
最佳实践(Best Practices)
检测网页安全性和开发实践,例如是否启用 HTTPS,是否存在安全漏洞等。
SEO(Search Engine Optimisation)
评估网页的搜索引擎友好性,比如标题、元描述是否优化,页面是否允许爬取等。
渐进式 Web 应用(PWA)
验证网页是否符合 PWA 标准,如离线支持、安装性等。
4.如何使用 Lighthouse
Lighthouse 可以通过多种方式运行:
- Chrome DevTools
打开 Chrome 浏览器,右键点击页面 -> 检查 -> 切换到 Lighthouse 面板,选择测试选项,点击 分析页面加载。
- CLI 命令行工具
- Chrome 插件
在 Chrome 网上应用商店搜索 Lighthouse 插件,安装后直接在浏览器中生成报告。
- Node.js API
使用 Node.js 脚本运行 Lighthouse 测试,适合高级开发者(官方介绍的,没用过)。
5.Lighthouse 报告解读
Lighthouse 报告为每个维度生成 0–100 的评分,并用颜色标识:
- 绿色(90–100):表现优秀
- 橙色(50–89):表现中等
- 红色(0–49):表现较差
下面是关键性能指标的理想范围:
指标名称 | 绿色(优秀) | 橙色(中等) | 红色(较差) |
---|---|---|---|
首次内容绘制 (FCP) | 0–1.8 秒 | 1.8–3 秒 | >3 秒 |
最大内容绘制 (LCP) | 0–2.5 秒 | 2.5–4 秒 | >4 秒 |
可交互时间 (TTI) | 0–3.8 秒 | 3.9–7.3 秒 | >7.3 秒 |
总阻塞时间 (TBT) | 0–200 毫秒 | 200–600 毫秒 | >600 毫秒 |
累积布局偏移 (CLS) | 0–0.1 | 0.1–0.25 | >0.25 |
6.性能优化建议
根据报告中提供的优化建议,可以从以下几个方面提升性能:
- 减少未使用的 JS 和 CSS
- 使用代码分割和按需加载技术。
- 删除无用的 CSS 和 JS 文件。
- 启用文本压缩
- 配置服务器支持 gzip 或 Brotli 压缩。
- 优化图片加载
- 使用下一代图片格式(如 WebP)。
- 启用懒加载(Lazy Loading)。
- 消除渲染阻塞资源
- 将关键 CSS 内联到 HTML 中。
- 为非关键资源添加
async
或defer
属性。
- 开启 HTTP/2
- 改用 HTTP/2 协议,提高请求效率。
- 优化服务器响应时间
- 使用 CDN 缓存静态资源。
- 减少重定向请求。
……
总结
Lighthouse 是前端性能优化的强大工具,通过全面的分析和详细的优化建议,开发者可以发现网页性能问题并进行改进。
参考资料:
- Google Developers 文档
- CSDN 博客
相关文章:

Lighthouse(灯塔)—— Chrome 浏览器性能测试工具
1.认识 Lighthouse Lighthouse 是 Google 开发的一款开源性能测试工具,用于分析网页或 Web 应用的性能、可访问性、最佳实践、安全性以及 SEO 等关键指标。开发人员可以通过 Lighthouse 快速了解网页的性能瓶颈,并基于优化建议进行改进。 核心功能&…...

扫二维码进小程序的指定页面
草料二维码解码器 微信开发者工具 获取二维码解码的参数->是否登陆->跳转 options.q onLoad: function (options) {// console.log("options",options.q)if (options && options.q) {// 解码二维码携带的链接信息let qrUrl decodeURIComponent(optio…...

如何用IntelliJ IDEA开发Android Studio用自定义Gradle插件
博主所用软件版本为: IntelliJ IDEA 2024.1.4 (Community Edition) Android Studio Ladybug Feature Drop | 2024.2.2 Beta 1 1、制作gradle插件(IntelliJ IDEA 2024.1.4) 新建groovy工程,File–>New–>Project… 右键点…...

YOLOv8实战道路裂缝缺陷识别
本文采用YOLOv8作为核心算法框架,结合PyQt5构建用户界面,使用Python3进行开发。YOLOv8以其高效的实时检测能力,在多个目标检测任务中展现出卓越性能。本研究针对道路裂缝数据集进行训练和优化,该数据集包含丰富的道路裂缝图像样本…...

RPC一分钟
概述 微服务治理:Springcloud、Dubbo服务通信:Grpc、Trift Dubbo 参考 Dubbo核心功能,主要提供了:远程方法调用、智能容错和负载均衡、提供服务自动注册、自动发现等高效服务治理功能。 Dubbo协议Dubbo支持dubbo、rmi、http、…...

Elasticsearch ILM 故障排除:常见问题及修复
作者:来自 Elastic Stef Nestor 大家好!我们的 Elasticsearch 团队正在不断改进我们的索引生命周期管理 (index Lifecycle Management - ILM) 功能。当我第一次加入 Elastic Support 时,我通过我们的使用 ILM 实现自动滚动教程快速上手。在帮…...

Unity 设计模式-策略模式(Strategy Pattern)详解
策略模式(Strategy Pattern)是一种行为型设计模式,定义了一系列算法,并将每种算法封装到独立的类中,使得它们可以互相替换。策略模式让算法可以在不影响客户端的情况下独立变化,客户端通过与这些策略对象进…...

【Maven系列】深入解析 Maven 常用命令
前言 在当今的软件开发过程中,项目管理是至关重要的一环。项目管理包括了项目构建、依赖管理以及发布部署等诸多方面。而在Java生态系统中,Maven已经成为了最受欢迎的项目管理工具之一。Maven 是一套用于构建、依赖管理和项目管理的工具,主要…...

微信小程序之简单的数据中心管理平台(1)
微信小程序之简单的数据中心管理平台(1) 引言 随着微信小程序的广泛应用,越来越多的企业开始探索如何利用这一技术开发高效、便捷的管理平台。数据中心管理作为信息化建设的重要组成部分,需要一个灵活、可扩展的界面来实现资源的…...
sqlmap --os-shell的原理(MySQL,MSSQL,PostgreSQL,Oracle,SQLite)
1. MySQL 条件 数据库用户需要具备高权限(如 FILE 权限)。数据库服务运行用户需要对目标目录有写权限。Web 服务器有可写目录,且支持执行上传的脚本(如 PHP、JSP 等)。 原理 利用 MySQL 的 SELECT ... INTO OUTFIL…...

2024年认证杯SPSSPRO杯数学建模C题(第一阶段)云中的海盐解题全过程文档及程序
2024年认证杯SPSSPRO杯数学建模 C题 云中的海盐 原题再现: 巴黎气候协定提出的目标是:在2100年前,把全球平均气温相对于工业革命以前的气温升幅控制在不超过2摄氏度的水平,并为1.5摄氏度而努力。但事实上,许多之前的…...

三维扫描检测在汽车制造中的应用
三维扫描,通过先进三维扫描技术获取产品和物体的形面三维数据,建立实物的三维图档,满足各种实物3D模型数据获取、三维数字化展示、3D多媒体开发、三维数字化存档、逆向设计、产品开发、直接3D打印制造或辅助加工制造等一系列的应用。 三维扫描…...

【NoSQL数据库】Hbase基本操作——数据库表的增删改查
目录 一、Hbase原理 二、HBase数据库操作 三、遇到的问题和解决方法 一、Hbase原理 HBase的数据模型: 行键 时间戳 列族:contents 列族:anchor 列族:mime “com.cnn.www” T9 Achor:cnnsi.com”CNN” T8 Achor:…...

【C++】格式化输出详解:掌握 cout 的进阶用法
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯格式化输出的理论概述💯控制输出宽度和填充字符setw 操作符setfill 操作符 💯控制浮点数的显示格式fixed 与 scientificsetprecision 💯…...
设计模式学习思路二
设计模式的学习思路_设计模式必须按顺序进行吗-CSDN博客 以下是一些方法和思路可以帮助你更清晰地识别使用了哪种设计模式。 1. 确定模式时的思考步骤 以下是分析代码时,你可以遵循的一些思路和步骤,帮助你识别可能使用的设计模式: a. 识别…...
什么是等级保护
1.为什么要实施等级保护: •国家信息安全形势严峻(敌对势力),针对基础信息系统的违法犯罪持续上升(网上诈骗、入侵、网上盗窃) •维护国家安全的需求(基础信息网络【互联网、电信网、广电网】及重要信息系统【银行、铁路、电力、海关】已经成为国家的关键基础设施) •信息安全是…...
k8s api对象,CRD
在Kubernetes项目中,一个API对象在Etcd里的完整资源路径,是由:Group(API组)、Version(API版本)和Resource(API资源类型)三个部分组成 apiVersion: batch/v2alpha1 kind:…...

【C++指南】C++内存管理 深度解析
💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《C指南》 期待您的关注 目录 引言 一、C 内存管理概述 二、C内存区域划分 三、C 内存管理方式 🍃1.自动内存管理…...

C++小碗菜之二:软件单元测试
“没有测试的代码重构不能称之为重构,它仅仅是垃圾代码的到处移动” ——Corey Haines 目录 前言 什么是单元测试? 单元测试的组成 单元测试的命名 单元测试的独立性 Google Test 单元测试的环境配置与使用 1. Ubuntu下安装 Google Test 2. 编写…...

PyCharm+Selenium+Pytest配置小记
1、下载ChromeDriver: Chrome130以后的Driver下载: Chrome for Testing availabilityhttps://googlechromelabs.github.io/chrome-for-testing/ (1)查看自己Crome浏览器的版本:设置-->关于 Chrome; &…...

国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...

Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...

2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

云原生安全实战:API网关Kong的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...

解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...

关于easyexcel动态下拉选问题处理
前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...

如何在Windows本机安装Python并确保与Python.NET兼容
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...