使用浏览器开发工具分析性能

使用浏览器开发工具分析性能

一、网络分析

1、面板概览:

  1. Controls (控件) : 控制面板的功能
  2. Filters (过滤器) : 控制在请求列表中显示哪些资源
  3. Overview (概览) : 展示检索资源的时间轴,多个垂直堆叠的栏意味着这些资源被同时检索
  4. Requests Table (请求列表) : 展示检索的每个资源,默认情况下,此表按时间顺序排序,右键单击列表的任何标题栏可以以添加或删除信息列。
  5. Summary (概要) : 展示请求的总数、传输的数据量和加载时间
    在这里插入图片描述

2、面板设置

  • 使用大量请求行:资源较少或查看详细情况时打开
  • 概览:显示瀑布信息
  • 屏幕截图:整个网络请求中页面的渲染情况
    在这里插入图片描述

3、网络请求详情

  • DOMContentLoaded:DOM渲染完成时间。即HTML页面由上向下解析HTML结构到末尾封闭标签。
  • Load:当前页面所有资源加载完成时间。DOM树构建完成后,继续加载html/css 中的图片资源等外部资源,加载完成后视为页面加载完毕。
    DOMContentLoaded 会比 Load 时间小,两者时间差大致等于外部资源加载的时间。
  • Finish: 是页面上所有 http 请求发送到响应完成的时间。
    页面发送请求和页面解析文档结构,分属两个不同的线程,所以Finish 时间与DOMContentLoaded 和 Load 并无直接关系。
    在这里插入图片描述
    在这里插入图片描述

4、缓存测试
在这里插入图片描述

5、网络吞吐测试
在这里插入图片描述

6、网络请求阻止
使用命令(英文:block,中文:屏蔽)
临时阻止某个资源的加载,评估对整体页面性能的影响,如果因为这个资源消耗了过多的时间,可以考虑去留。
在这里插入图片描述

7、请求覆盖
使用命令(英文:coverage,中文:覆盖)
可以根据情况合理优化,例如工具代码的拆包、路由懒加载
在这里插入图片描述

二、性能分析

在这里插入图片描述

1、控制按钮

  • record:开始记录分析运行中的性能表现
  • start:刷新页面并性能分析,从加载到最终渲染的性能表现
  • clear:清除数据记录
  • load profile:导入文件加载其他结果
  • save profile:保存分析记录
  • Screenshots:运行过程中每一帧的绘制进行拍照截图,可以看到运行时的渲染情况
  • Memory:查看内存信息
    在这里插入图片描述

下拉切换性能分析报告:
在这里插入图片描述

  • 停用JavaScript示例:默认情况下,录制的Main部分显示录制期间调用的 JavaScript 函数的详细调用堆栈。对移动端进行测试建议停用,这样在移动端运行的时候可以减少系统开销。开启后记录中会忽略所有 JavaScript 的调用栈,记录的 Main 部分会比开启更简短。

  • 启用高级绘制:会详细记录某些渲染细节,比如图层信息、Paint分析等,测试时间会长一些。
    在这里插入图片描述

  • CUP:录制时限制CPU,用于针对各种设备差异进行性能测试。
    例如手机设备比台式机和笔记本的CPU频率小,评估网页需要使用CPU限制来模拟网页在手机设备上的表现。
    在这里插入图片描述

  • 网络:录制时限制网络(Network),用于对网络环境进行性能测试。
    在这里插入图片描述

  • 硬件并发:测试具有不同数量的处理器核心的应用程序性能。

2、Overview

  • FPS:每秒的帧数。出现红色的长条,说明这部分动画性能有卡帧,需要进行优化,而绿色长条,就说明性能还可以,绿色长条越高,说明性能越好。
    FPS 应该维持在 60 前后,即一秒之内进行 60 次重新渲染,每次重新渲染的时间不能超过 16.7ms 左右。
    fps = 60 性能极佳,fps < 24 会让用户感觉到卡顿,(人眼的识别主要是24帧)
    在这里插入图片描述
    在这里插入图片描述

  • CPU:页面加载过程中,各阶段对CPU的占用时间。面积图指示消耗 CPU 资源的事件类型,和底部的summary对应,其中不同的颜色就对应着不同的部分,占用时间越多,表示该部分越需要被优化。
    在这里插入图片描述

  • NET:请求的顺序和花费的时间。每条彩色横杠表示一种资源,横杠越长,检索资源所需的时间越长。 也可以在下面的network查看更具体的顺序和耗时,点击network里面的内容在summary中会显示出具体的内容。
    在这里插入图片描述

3、火焰图:x轴是时间进度,y轴是事件调用关系。第一行表示发生的事件,下面的各行是上面事件的子项。
在这里插入图片描述

超过50ms的任务是一个长任务,占用CPU时间,无法响应用户操作。
在这里插入图片描述

名词全称解释触发时机
DCLdomContentLoadeddom内容解析完成HTML 文档完全加载和解析之后,DOMContentLoaded 事件被触发
Lloaded页面的load事件整个页面及所有依赖资源(如样式表和图片)都已完成加载时触发
FPfirstPaint首次绘制首个像素开始绘制到屏幕上的时机,常说的白屏时间也就是指访问页面到 FP 的这段时间
FCPfirstContentfulPaint首次内容绘制从开始加载到页面内容的任何部分在屏幕上完成渲染的时间,可以是文本、图像(包括背景图像)、svg 元素或非白色的 canvas 元素
LCPlargestContentfulPaint最大内容绘制可视区域内可见的最大图像或文本块完成渲染的相对时间

FCP事件指渲染出第一个内容的事件,而FP指渲染出第一个像素点,渲染出的东西可能是内容,也可能不是。

对应优化:浏览器原理系列:FP,FCP,LCP,DCL,L之分析优化

FP、FCP、LCP是指页面的一个状态,是按顺序触发的。FP之前叫做白屏时间,FP到FCP是dom内容绘制阶段,FCP到LCP是最大的dom元素绘制阶段。

DCL和L,一般来说都是DCL在前,极少部分页面是L在前面。如果页面有许多外部资源需要加载,那么load 事件会后触发,如果页面内容较多,外部资源较少,那么load事件可能先触发。

4、事件统计

查看导致最多工作的根活动时,使用“调用树”选项卡。
查看直接花费最多时间的活动时,使用“自下而上”选项卡。
按照记录过程中发生的顺序查看活动时,使用“事件日志”选项卡。

  • 摘要:CPU占用时间的总结,可以直观地看到各个事件CPU消耗的占比。
    在这里插入图片描述
正在加载:网络通信和HTML解析
Parse HTML浏览器执行 HTML 解析
Finish Loading网络请求完毕事件
Receive Data请求的响应数据到达事件,如果响应数据很大(拆包),可能会多次触发该事件
Send Request发送网络请求时触发
正在执行脚本:JavaScript 执行
Animation Frame Fired一个定义好的动画帧发生并开始回调处理时触发
Cancel Animation Frame取消一个动画帧时触发
GC Event垃圾回收时触发
DOMContentLoaded当页面中的 DOM 内容加载并解析完毕时触发
Evaluate ScriptA script was evaluated.
Eventjs 事件
Function Call只有当浏览器进入到 js 引擎中时触发
Install Timer创建计时器(调用 setTimeout()和 setInterval())时触发
Request Animation FramerequestAnimationFrame()调用预定一个新帧
Remove Timer当清除一个计时器时触发
Time调用 console.time()触发
Time End调用 console.timeEnd()触发
Timer Fired定时器激活回调后触发
XHR Ready State Change当一个异步请求为就绪状态后触发
XHR Load当一个异步请求完成加载后触发
渲染:样式计算和布局
Invalidate layout当 DOM 更改导致页面布局失效时触发
Layout页面布局计算执行时触发
Recalculate styleChrome 重新计算元素样式时触发
Scroll内嵌的视窗滚动时触发
绘制
Composite LayersChrome 的渲染引擎完成图片层合并时触发
Image Decode一个图片资源完成解码后触发
Image Resize一个图片被修改尺寸后触发
Paint合并后的层被绘制到对应显示区域后触发
  • 自下而上:查看哪些活动直接占用了最多的时间,仅显示录制的选定部分期间的活动。
    在这里插入图片描述

    • 自身耗时:指除去子事件这个事件本身消耗的时间,也就是直接花费在该活动中的总时间。
    • 总时间:这个事件从开始到结束消耗的时间(包含子事件)
  • 调用树:主要记录事件调用顺序。
    根活动,是那些导致浏览器做一些工作的活动。例如,当您单击一个页面时,浏览器会触发一个Event活动作为根活动。这Event可能会导致处理程序执行,等等。
    常见的有Event、Paint、Update Layer Tree和Composite Layers等。
    在这里插入图片描述

  • 事件日志:按记录期间发生的顺序(执行顺序)查看活动,仅显示录制的选定部分期间的活动。
    [图片]

最后!!
附上谷歌官方的Demo地址:Demo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值