Chrome控制台 网站性能优化指标一览
打开chrome-》f12/右键查看元素-》NetWrok/网络
ctrl+F5 刷新网页,可以看到从输入url到页面资源请求并加载网页,用于查看资源加载,接口请求,评估网页、网站性能等,如下图:
request、stransferred、resources 的含义
request()代表请求数量:点击上面可以单独查看各个request类型下的请求,request类型包含:xhr and fetch(接口请求)、Document、css、javaScript、Font、Image、Media、Manifest、web Socket、WebAssembly、other;
stransferred(transferred over network):通过网络加载的资源大小。
标识请求的资源的传输,可以看到资源大小
resources(resources loaded by the page):统计的是前端页面加载的所有资源经过解压之后的原始大小。
【
以上说明来自Google官网: https://developers.google.com/web/tools/chrome-devtools/network/reference#uncompressed
https://stackoverflow.com/questions/56043151/what-is-the-difference-between-transferred-and-resources-in-chrome-devtools
】
DOMContentLoaded 和 Load 和 Finish的含义和区别
DOMContentLoaded:DOM树构建完成。 即HTML页面由上向下解析HTML结构到末尾封闭标签。
Load:页面加载完毕。 DOM树构建完成后,继续加载html/css 中的图片资源等外部资源,加载完成后视为页面加载完毕。
DOMContentLoaded 会比 Load 时间小,两者时间差大致等于外部资源加载的时间。
Finish: 是页面上所有 http 请求发送到响应完成的时间, HTTP1.0/1.1 协议限定,单个域名的请求并发量是 6 个,即 Finish 是所有请求(不只是XHR请求,还包括DOC,img,js,css等资源的请求)在并发量为6的限制下完成的时间。
Finish 的时间比 Load 大,意味着页面有相当部分的请求量,
Finish 的时间比 Load 小,意味着页面请求量很少,如果页面是只有一个 html文档请求的静态页面,Finish时间基本就等于HTML文档请求的时间。
页面发送请求和页面解析文档结构,分属两个不同的线程,
Performance
Lighthouse
Lighthouse 是 Google 开发的一款工具,用于分析网络应用和网页,收集现代性能指标并提供对开发人员最佳实践的意见。为 Lighthouse 提供一个需要审查的网址,它将针对此页面运行一连串的测试,然后生成一个有关页面性能的报告。
Lighthouse报告分析
Lighthouse生成的分析报告,首先会根据自定义勾选的需要测试的指标进行总的打分(下图标1处,可以把分析报告进行导出结果等操作)。
Lighthouse 会对选择进行分析的维度给出一个的评估得分,分值范围0-100。
评分主要分为三个档次,分别用红黄绿三种颜色代表:
0 – 49(慢):红色
50 – 89(平均值): 橙色
90 – 100(快): 绿色
如果得分能达到 90 分以上(绿色),则说明网站应用在该方面的评估表现符合最佳实践。⚠️注: 如果没有分数或得分为 0,则很有可能是检测过程发生了错误,比如网络连接状况异常等。
点击 See calculator
,查看具体打分规则如下:
1、Metrics指标说明
指标名称 | 说明 |
---|---|
首次内容绘制FCP (First Contentful Paint) | 浏览器首次绘制来自 DOM 的内容的时间,内容必须是文本、图片(包含背景图)、非白色的 canvas 或 SVG,也包括带有正在加载中的 Web 字体的文本。 这是用户第一次开始看到页面内容,但仅仅有内容并不意味着它是有用的内容(如 Header、导航栏等)。 |
最大的内容绘制LCP (Largest Contentful Paint) | 可视区域中最大的内容元素呈现到屏幕上的最长时间,用以估算页面的主要内容对用户可见时间。 LCP 考虑的元素包括: 元素 、元素内的 <svg> 元素 、元素、通过 url() 函数加载背景图片的元素、包含文本节点或其他内联文本元素子级的块级元素。 |
可交互时间TTI (Time to Interactive) | 指的是所有的页面内容都已经成功加载,且能够快速地对用户的操作做出反应的时间点。 网页第一次完全达到可交互状态的时间点,浏览器已经可以持续性的响应用户的输入。 完全达到可交互状态的时间点是在最后一个长任务(Long Task)完成的时间,并且在随后的 5 秒内网络和主线程是空闲的。 |
总阻塞时间TBT (Total Blocking Time) | 表示此次分析过程中遇到的阻塞时间。 度量了 FCP 和 TTI 之间的总时间,在该时间范围内,主线程被阻塞足够长的时间以防止输入响应。 只要存在长任务,该主线程就会被视为“阻塞”,该任务在主线程上运行超过 50 毫秒(ms)。 |
累积布局偏移CLS (Cumulative Layout Shift) | CLS 会测量在页面整个生命周期中发生的每个意外的布局移位的所有单独布局移位分数的总和,它是一种保证页面的视觉稳定性从而提升用户体验的指标方案。 |
速度指标SI (Speed Index) | 衡量首屏可见内容绘制在屏幕上的速度。在首次加载页面的过程中尽量展现更多的内容,往往能给用户带来更好的体验,所以速度指标的值约小越好。 |
其他指标:
指标名称 | 说明 |
---|---|
首次CPU闲置FCI (First CPU Idle) | 指在页面加载期间,当页面的主要内容已经完成加载并且JavaScript代码已经执行完毕后,浏览器第一次空闲的时间点。 在这个时间点之后,页面可以响应用户的交互操作,比如点击按钮或输入文本。 |
首次绘制FP (First paint) | 指浏览器首次将像素渲染到屏幕上的时间点,也就是页面的第一个像素点被绘制的时间。 |
首次有效绘制FMP (First Meaningful Paint) | 浏览器在加载网页时,第一次将主要内容呈现给用户的时间点。 这个时间点通常是用户感知到页面加载速度的关键点之一,用户可以看到页面上的一些内容,并开始与页面进行交互。 FMP是通过一个算法来猜测某个时间点的,所以可能不准确,且在 Lighthouse 6.0中,FMP指标已被弃用。 |
文档内容加载完成DCL (DOMContentLoaded ) | DCL 指的是HTML文档中的DOM树构建完成、CSS文件加载完成并解析、JavaScript文件加载完成并执行的时间点,它表示网页的主要内容已经加载完成,可以开始进行交互和操作。 |
首次输入延迟FID (First Input Delay) | 测量从用户第一次与页面交互,直到浏览器对交互作出响应,并实际能够开始处理事件处理程序所经过的时间。FID 测量页面加载期间响应度,它针对的交互是不连续操作对应的输入事件,如点击、轻触和按键。其他诸如滚动和缩放之类的交互属于连续操作并不包含在她的测量内。 |
2、指标衡量标准
模式名称 | 绿色快 | 中 | 慢 |
---|---|---|---|
首次内容绘制 FCP (First Contentful Paint) | 0–1.8(s) | 1.8–3 | > 3 |
最大的内容绘制 FCP (Largest Contentful Paint) | 0–2.5(s) | 2.5-4 | > 4 |
可交互时间 TTI (Time to Interactive) | 0–3.8(s) | 3.9–7.3 | > 7.3 |
总阻塞时间 TBT (Total Blocking Time) | 0–200(ms) | 200-600 | > 600 |
累积布局偏移 CLS (Cumulative Layout Shift) | 0–0.1(比例) | 0.1-0.25 | > 0.25 |
速度指标 SI (Speed Index) | 0-3.4(s) | 3.4-5.8 | > 5.8 |
首次CPU闲置 FCI( First CPU Idle) | 0–4.7(s) | 4.8-6.5 | > 6.5 |
首次有效绘制 FMP First Meaningful Paint | 0–2(s) | 2-4 | > 4 |
最大潜在首次输入延迟 MPFID Max Potential First Input Delay | 0–130(ms) | 130-250 | > 250 |
最大内容绘制 LCP (Largest Contenttful Paint) | 0–2.5(s) | 2.5-4 | >4 |
3、改进建议
Opportunity的建议可以帮助更快地加载页面,但它们不会直接影响性能得分。
常见的可改进项有如下:
- Use HTTP/2 ,HTTP/2 提供了许多优于 HTTP/1.1 的优点,包括二进制标头和多路复用。即现在用的是 HTTP/1.1,建议使用 HTTP/2。需要服务端配合改,目前不支持。
- Minifying JavaScript ,精简js代码。
- Reduce unused JavaScript ,减少未使用的 JavaScript 并推迟加载脚本,直到需要时才加载,以减少网络活动消耗的字节数(LCP)。即:删除无用的 JS,主要方法就是合理的代码分割和按需引入。
- Enable text compression,基于文本的资源应该使用压缩(gzip等),以最小化网络总字节数(FCP,LCP)。即:配置 gzip压缩。
- Eliminate render-blocking resources,列出了阻止页面首次绘制的所有 URL(FCP,LCP),通过内联关键资源、推迟非关键资源和删除任何未使用的内容来减少这些阻止渲染的 URL 的影响。即:合理加载资源,控制加载顺序。
如何识别关键资源:使用 Chrome DevTools 中的 Coverage 选项卡来识别非关键 CSS 和 JS。当加载或运行页面时,该选项卡可以分析使用了多少代码,以及加载了多少代码,绿色(关键),红色(非关键 )
如何消除渲染阻塞脚本:合理使用 async 或 defer 属性标记
如何消除阻塞渲染的样式表:可使用 preload 链接异步加载其余样式,可查看推迟非关键 CSS
4、Diagnostics
(诊断)
5、PASSED AUDITS
( 审核通过)
列举了在性能优化方面做的比较好的地方,常见项及说明如下(其实做性能优化的时候就可以参照这些方面):
- Properly size images:适当大小的图像,避免字节浪费而减慢页面加载时间
- Defer offscreen images:屏幕外图像延迟加载
- Minify CSS:缩小 CSS 文件,减少网络负载大小
- Minify JavaScript:缩小 JS 文件,减少有效负载大小和脚本解析时间
- Reduce unused CSS:删除未使用的 CSS
- Efficiently encode images:有效地图片编码和优化
- Serve images in next-gen formats:以下一代格式提供图像
- Enable text compression:启用文本压缩
- Preconnect to required origins:预连接到所需的源
- Initial server response time was short:初始服务器响应时间很短
- Avoid multiple page redirects:避免多个页面重定向
- Preload key requests:预加载关键请求
- Use video formats for animated content:用视频替换动画 GIF
- Remove duplicate modules in JavaScript bundles:删除 JavaScript 包中的重复模块
- Avoid serving legacy JavaScript to modern browsers:避免向现代浏览器提供旧版 JavaScript
- Preload Largest Contentful Paint image:预加载最大的内容绘制
- Avoids enormous network payloads:避免巨大的网络负载
- Uses efficient cache policy on static assets:对静态资产使用高效的缓存策略
- Avoids an excessive DOM size:避免过大的 DOM 元素
- User Timing marks and measures:用户计时标记和度量
- JavaScript execution time:JavaScript 执行时间
- Minimizes main-thread work:最小化主线程工作
- All text remains visible during webfont loads:在 webfont 加载期间所有文本保持可见
- Minimize third-party usage:尽量减少第三方使用
- Lazy load third-party resources with facades:延迟加载第三方资源
- Uses passive listeners to improve scrolling performance:使用被动侦听器来提高滚动性能
- Avoids document.write():避免使用 document.write()
- Image elements have explicit width and height:图像元素应具有明确的宽度和高度
6、可访问性(Accessibility)
Accessibility 辅助功能 : 主要针对无障碍设计,也称为网站可达性,是指所创建的网站对所有用户都可用/可访问,不管用户的生理/身体能力如何、不管用户是以何种方式访问网站。
参考文章:Lighthouse(灯塔)—— Chrome浏览器强大的性能测试工具_chrome lighthouse-CSDN博客
Google dev开发指南: web.dev/
如何看vue首页的加载速度 • Worktile社区
network其他模块介绍参考: Chrome DevTools谷歌浏览器开发者工具评估资源加载时间
相关文章:

Chrome控制台 网站性能优化指标一览
打开chrome-》f12/右键查看元素-》NetWrok/网络 ctrlF5 刷新网页,可以看到从输入url到页面资源请求并加载网页,用于查看资源加载,接口请求,评估网页、网站性能等,如下图: request、stransferred、resour…...
Typora创建markdwon文件的基础语法
标题的创建 使用#空格xxx 可使xxx为标题,同时第一标题为#空格标题;第二标题为##空格标题2。以此类推最多可创建六个标题。 同时按住Ctrl1可创建第一标题,同时按住Ctrl2可创建第二标题,以此类推,最多可创建六个标题。也…...
《嵌入式硬件设计》
一、引言 嵌入式系统在现代科技中占据着至关重要的地位,广泛应用于消费电子、工业控制、汽车电子、医疗设备等众多领域。嵌入式硬件设计作为嵌入式系统开发的基础,直接决定了系统的性能、可靠性和成本。本文将深入探讨嵌入式硬件设计的各个方面ÿ…...
【AIGC】大模型面试高频考点-位置编码篇
【AIGC】大模型面试高频考点-位置编码篇 (一)手撕 绝对位置编码 算法(二)手撕 可学习位置编码 算法(三)手撕 相对位置编码 算法(四)手撕 Rope 算法(旋转位置编码…...
如何使用 SQL 语句创建一个 MySQL 数据库的表,以及对应的 XML 文件和 Mapper 文件
文章目录 1、SQL 脚本语句2、XML 文件3、Mapper 文件4、启动 ServiceInit 文件5、DataService 文件6、ComplianceDBConfig 配置文件 这个方式通常是放在项目代码中,使用配置在项目的启动时创建表格,SQL 语句放到一个 XML 文件中。在Spring 项目启动时&am…...

Unity性能优化---动态网格组合(二)
在上一篇中,组合的是同一个材质球的网格,如果其中有不一样的材质球会发生什么?如下图: 将场景中的一个物体替换为不同的材质球 运行之后,就变成了相同的材质。 要实现组合不同材质的网格步骤如下: 在父物体…...

JVM学习《垃圾回收算法和垃圾回收器》
目录 1.垃圾回收算法 1.1 标记-清除算法 1.2 复制算法 1.3 标记-整理算法 1.4 分代收集算法 2.垃圾回收器 2.1 熟悉一下垃圾回收的一些名词 2.2 垃圾回收器有哪些? 2.3 Serial收集器 2.4 Parallel Scavenge收集器 2.5 ParNew收集器 2.6 CMS收集器 1.垃圾…...

GPS模块/SATES-ST91Z8LR:电路搭建;直接用电脑的USB转串口进行通讯;模组上报定位数据转换地图识别的坐标手动查询地图位置
从事嵌入式单片机的工作算是符合我个人兴趣爱好的,当面对一个新的芯片我即想把芯片尽快搞懂完成项目赚钱,也想着能够把自己遇到的坑和注意事项记录下来,即方便自己后面查阅也可以分享给大家,这是一种冲动,但是这个或许并不是原厂希望的,尽管这样有可能会牺牲一些时间也有哪天原…...
什么是TCP的三次握手
TCP(传输控制协议)的三次握手是一个用于在两个网络通信的计算机之间建立连接的过程。这个过程确保了双方都有能力接收和发送数据,并且初始化双方的序列号。以下是三次握手的详细步骤: 第一次握手(SYN)&…...

《Clustering Propagation for Universal Medical Image Segmentation》CVPR2024
摘要 这篇论文介绍了S2VNet,这是一个用于医学图像分割的通用框架,它通过切片到体积的传播(Slice-to-Volume propagation)来统一自动(AMIS)和交互式(IMIS)医学图像分割任务。S2VNet利…...
Linux ifconfig ip 命令详解
简介 ifconfig 和 ip 命令用于配置和显示 Linux 上的网络接口。虽然 ifconfig 是传统工具,但现在已被弃用并被提供更多功能的 ip 命令取代。 ifconfig 安装 sudo apt install net-toolssudo yum install net-tools查看所有活动的网络接口 ifconfig启动/激活网络…...

Vue3 对于echarts使用 v-show,导致显示不全,宽度仅100px,无法重新渲染的问题
参考链接:解决Echarts图表使用v-show,显示不全,宽度仅100px的问题_echarts v-show图表不全-CSDN博客 Vue3 echarts v-show无法重新渲染的问题_v-show echarts不渲染-CSDN博客 原因不多赘述了,大概就是v-show 本身是结构已经存在,当数据发生…...

C++实现俄罗斯方块
俄罗斯方块 还记得俄罗斯方块吗?相信这是小时候我们每个人都喜欢玩的一个小游戏。顾名思义,俄罗斯方块自然是俄罗斯人发明的。这人叫阿列克谢帕基特诺夫。他设置这个游戏的规则是:由小方块组成的不同形状的板块陆续从屏幕上方落下来…...

鸿蒙分享:添加模块,修改app名称图标
新建公共模块common 在entry的oh-package.json5添加dependencies,引入common模块 "dependencies": {"common": "file:../common" } 修改app名称: common--src--resources--string.json 新增: {"name&q…...
扫描IP段内的使用的IP
扫描IP段内的使用的IP 方法一:命令行 命令行进入 for /L %i IN (1,1,254) DO ping -w 1 -n 1 192.168.3.%iarp -a方法二:python from scapy.all import ARP, Ether, srp import keyboarddef scan_network(ip_range):# 创建一个ARP请求包arp ARP(pds…...

【专题】虚拟存储器
前文提到的存储器管理方式有一个共同的特点,即它们都要求将一个作业全部装入内存后方能运行。 但有两种特殊情况: 有的作业很大,其所要求的内存空间超过了内存总容量,作业不能全部被装入内存,致使该作业无法运行&#…...

Python之爬虫入门--示例(2)
一、Requests库安装 可以使用命令提示符指令直接安装requests库使用 pip install requests 二、爬取JSON数据 (1)、点击网络 (2)、刷新网页 (3)、这里有一些数据类型,选择全部 (…...
5G CPE终端功能及性能评测(四)
5G CPE 功能性能评测 本文选取了几款在工业应用领域应用较多的5G CPE,对其功能和性能进行了对比评测。功能方面主要对比了网络接口数量,VPN功能 支持情况。以下测试为空口测试,测试结果受环境影响较大,性能仅供参考。总体看,高通X55芯片下行最优,速率稳定。 功能 对比CPE…...

人工智能驱动的骗局会模仿熟悉的声音
由于人工智能技术的进步,各种现代骗局变得越来越复杂。 这些骗局现在包括人工智能驱动的网络钓鱼技术,即使用人工智能模仿家人或朋友的声音和视频。 诈骗者使用来自社交媒体的内容来制作深度伪造内容,要求提供金钱或个人信息。个人应该通过…...

电子病历静态数据脱敏路径探索
一、引言 数据脱敏(Data Masking),屏蔽敏感数据,对某些敏感信息(比如patient_name、ip_no、ad、no、icd11、drug等等 )通过脱敏规则进行数据的变形,实现隐私数据的可靠保护。电子病历作为医疗领…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...

Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...

计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...
HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散
前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说,在叠衣服的过程中,我会带着团队对比各种模型、方法、策略,毕竟针对各个场景始终寻找更优的解决方案,是我个人和我司「七月在线」的职责之一 且个人认为,…...