前端性能优化《一》——Chrome Performance 页面性能调试
时间:2022-07-25
本文章向大家介绍前端性能优化《一》——Chrome Performance 页面性能调试,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
前言
前端性能,这是一个很大也很有趣的一块,是每个前端工程师不可避免的问题,所以这个系列会慢慢地探讨一些关于性能方面的问题。最近也接触到一些性能方面的调试以及优化的工作,纸上得来终觉浅,绝知此事要躬行。
竟然是性能优化,首先第一步就应该是性能调试,发现我们页面性能的问题,这篇文章属于入门级别的,话不多说,进入正题
认识 Chrome Performance
performance
的前世就是之前的 timeline
(好吧,我错过了这个时代)
如果你真的找不到的话,可以检查下浏览器的版本,说不定是版本的问题,我的是最新的,所以肯定没有问题
在 Chrome
中,我们打开 Chrome
调试面板,进入 performance
界面。如下所示,按照步骤来
解释下:
第二步:screenshots
是对你的屏幕进行截图,后面会生成相关的比较直观的截图
第四步:模拟 CPU
速度,更加方便你重现问题,如果 4x slowdown
不行,你可以选择 6x slowdown
我们可以看到左上侧的位置有几个重要按钮,其作用如下:
我们点击重新录制,就会出现:
完成之后就会出现以下的界面,这里都是我们应该重点关注的内容
先来看看有哪些部分:
- 第一部分:
controls
,上面已介绍 - 第二部分:重要参数,这一部分我们称之为
Overview
窗格,我们可以看到FPS
,CPU
,NET
在页面加载时候的变化。- FPS:每秒帧数,绿色竖线越高,
FPS
越高,我们应该关注红色部分,这说明我们的页面很可能出现卡顿现象,另外60
是一个比较理想的值 -
CPU
:CPU
资源 -
NET
: 每条彩色横杆代表一种资源,横杆越长,检索资源所需要的事件越长
- FPS:每秒帧数,绿色竖线越高,
- 第三部分:火焰图
- 横轴表示加载的时间
- 纵轴表示事件(线程)的执行顺序,先是上面的执行再到下面的,我们要特别注意红色的三角行部分
- 第四部分:
Summary
部分,可以看到CPU
中中的资源分配,比如下图中的Rendering
(渲染)占比就很大
使用小提示:第二、三、四部分都是联动的,比如你选择火焰图中的某个部分,下面的 Summary
就会显示这个部分的总结
使用 Performance 定位性能问题
上面简单介绍了一下 Performance
,在我们得到数据之后,怎么分析?
具体的步骤如下:
点击一下具体的执行代码,我们就可以看到相关的问题代码了
结束语
上面我们只是介绍了怎么定位性能问题,接下来怎么优化,这是一个很大的问题,接下来会慢慢的在这个系列中总结归纳!
- Hadoop(七)HDFS容错机制详解
- java一些常用并发工具示例
- 机器人来“抢工作”了,瑞典人为何能淡定处之
- 线性代数01 线性的大脑
- spring cloud 学习(10) - 利用springfox集成swagger
- Hadoop(六)之HDFS的存储原理(运行原理)
- Blockchain Global CEO Sam Lee:以大数据为基础,区块链技术加快决策生成速度
- Hadoop(五)搭建Hadoop客户端与Java访问HDFS集群
- 被解放的姜戈08 远走高飞
- mxnet安装及NDArray初体验
- MySQL(十五)之数据备份中mysqldump详解
- 安卓第十夜 亚当的诞生
- MySQL(十四)之数据备份与还原
- MySQL(十三)之MySQL事务
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Java开发必备 Git 分支开发:规范指南及完全学会Git的24堂课笔记
- 聊聊dubbo-go的failbackCluster
- 视频综合管理平台EasyNVS通道列表如何获得RTMP地址和RTSP地址?
- 【每周一库】 rust-ftp - an FTP client written in Rust
- Mall 电商实战项目发布重大更新,全面支持SpringBoot 2.3.0 !
- Python与Tableau相结合,万字长文搞定传统线下连锁店数据分析
- 社群答疑精选03:拆分数据到新工作表
- 【Rust日报】2020-08-08:用rust制作的一个Taskwarrior终端用户界面
- 【Rust日报】2020-08-09:1Paasword Linux版本
- 聊聊dubbo-go的failfastCluster
- Caused by: java.lang.ClassNotFoundException: Cannot find class: userMap
- 链路聚合实验
- 聊聊dubbo-go的failsafeCluster
- Phenotype : 大规模表型数据处理工具
- 聊聊dubbo-go的registryAwareCluster