在chrom的工具栏,有一个面板performance,点开之后操作后,你会看到一堆五颜六色的图表,但是具体是干什么的,未可知

performance面板是Chrome 的性能分析工具,那应该和页面有关系,所以我们就从页面性能方向开始看一下

一.页面性能受哪些影响

我感觉和页面性能挂钩的方向大概有:网络情况、服务器、前端渲染效率、用户端的硬件等,接着详细来看下这几个方向

网络

网络往往是页面性能比较关键的地方,域名解析、交换机、路由器、网络服务提供商等,任何一个出问题或响应过慢都会有不好的体验

服务器

因为我们发送的都是http请求,所以请求最终都要服务器来处理,服务器处理不当,无法响应或响应过慢也会直接影响页面的性能

前端的渲染效率

浏览器解析 HTML、CSS、图片等静态资源,呈现给用户的过程

用户与页面交互后,浏览器重新计算需要呈现的内容,然后重新绘制页面的过程

这些处理效率也是影响性能的重要因素

用户硬件

发起网络请求,解析网络响应,页面渲染绘制等过程都需要消耗计算机硬件资源, 所以计算机资源,特别是 CPU 和 GPU 资源短缺时,也会影响页面性能

Chrome 工具栏的工具 各有自己的侧重点, Network 工具的有资源拉取顺序的详细信息,它的侧重点在于分析网络相关的影响

Performance 工具的侧重点则在于前端渲染过程,它拥有帧率条形图、CPU 使用率面积图、资源瀑布图、主线程火焰图等模块,它们和渲染息息相关,善用它们可以清晰地观察整个渲染阶段。

不用纠结这些关键词,因为后面都会详细的一一给大家讲解到

二.开始性能分析

首先,以下连接是网上找的小demo,我们就围绕着这个demo来进行性能的分析

https://googlechrome.github.io/devtools-samples/jank/

打开demo后,接着打开你浏览器的控制台

一般移动端的cpu性能要比电脑若很多,所以我们选择性能较低的场景来进行计算

模拟移动设备的CPU

  1. 单击 Performance 选项卡
  2. 确保选中了 Screenshots (选中才会有屏幕快照)
  3. 单击 设置按钮,其中包含了捕获性能指标相关的设置
  4. 对于 CPU选项, 选择 4x slowdown, 进行 CPU 节流,使其比平时慢4倍

DEMO讲解

因为我们每个人的电脑,性能都有一定的差异,所以此demo可以自定义演示

  1. 继续单击 Add 10,直到蓝色方块移动明显比以前慢
  2. 单击 Optimize,蓝色方块应该移动得更快更流畅
  3. 单击 Un-Optimize,蓝色方块应该移动得更慢且更加卡顿

注意:如果你看不到优化版本和未优化版本之间的明显差异,请尝试单击 Subtract 10 几次,然后再试一次

记录运行时的页面性能

1.单击 Record 左上角灰色圆圈, 然后就会捕捉页面运行时的性能指标

2.等待几秒

3.单击 Stop, 停止记录, 分析数据, 然后会将分析结果展示在性能面板中

操作区域:包含录制,刷新页面分析,清除结果等一系列操作
      overview总览图:高度概括随时间线的变动,包括FPS,CPU,NET
      详情区域:从不同的角度分析框选区域 。例如:Network,Frames, Interactions, Main等
      总结区域:精确到毫秒级的分析,以及按调用层级,事件分类的整理

分析帧率

衡量任何动画性能的主要指标就是帧率, 当动画以60 fps的速度运行时, 用户体验是比较好的

1.注意FPS图表。只要你看到一条红条,就意味着低帧率,进而影响用户体验, 通常来说,绿色的柱条越高,代表帧率越高

a. FPS。每秒帧数。绿色竖线越高,FPS 越高。 FPS 图表上的红色块表示长时间帧,很可能会出现卡顿

   b. CPU。 CPU 资源。此面积图指示消耗 CPU 资源的事件类型

蓝色(Loading):网络通信和HTML解析
                     黄色(Scripting):JavaScript执行
                     紫色(Rendering):样式计算和布局,即重排
                     绿色(Painting):重绘
                     灰色(other):其它事件花费的时间
                     白色(Idle):空闲时间

   c. NET。每条彩色横杠表示一种资源。横杠越长,检索资源所需的时间越长。 每个横杠的浅色部分表示等待时间(从请求资源到第一个字节下载完成的时间)

2.在FPS图表下方,你可以看到CPU图表。CPU图表中的颜色与“性能”面板底部的 Summary 选项卡中的颜色相对应, 每当你看到CPU长时间达到最大负载时,这是进行优化的一个很好的提示

3.将鼠标悬停在 FPS、CPU 或 NET 图表上, 会显示该页面在该时间点的屏幕截图. 向左和向右移动鼠标以重放记录过程。这称为 scrubbing,它对于手动分析动画过程很有用(如上图)

在 Frames 区域中, 将鼠标悬停在其中一个绿色方块上, 会向你显示该特定帧的 FPS, 每帧可能远远低于60 FPS, 红色则相反

查出影响性能的根源

现在已经测量并验证了页面性能表现不好,接下来就是需要知道为什么性能不好

注意 Summary 选项卡,在未选择任何事件时,它呈现了浏览器在整个记录过程中把时间花在哪个部分. 可以看到,页面的大部分时间都花在渲染上

所以现在的目标就是:减少浏览器花费在渲染工作上的时间

展开 Main 区域,展示了一段时间内主线程上活动图,  x 轴代表着这段时间内的记录,每一个 Bar 都代表了一个事件。Bar 越宽,意味着该活动花费的时间更长。y轴表示调用堆栈,当你看到事件堆叠在一起时,这意味着上面的事件导致了下面的事件

记录过程中有很多数据, 在 OverView 面板(有 CPU, FPS, NET 图表的区域)上,用鼠标单击、按住、拖拽来放大单个 Animation Frame Fired 事件。此时 Main 和 Summary 中展示了选中的区间的相关信息

注意在 Animation Frame Fired 事件右上角的红三角,代表这个事件可能造成严重的问题   (每当 requestAnimationFrame() 回调调用时, 都会触发 Animation Frame Fired 事件)

单击某个 Animation Frame Fired 事件, Summary 中会展示与该事件相关的信息. 注意 reveal 链接,单击后,DevTools 会将触发当前的 Animation Frame Fired 事件的事件高亮出来

同时注意 app.js:94 链接,单击后跳转到相应的源码

上面就是performance的简单使用啦,后面继续补充......

chrom 性能分析工具 Performance相关推荐

  1. .NET 11 个 Visual Studio 代码性能分析工具

    原文地址 软件开发中的性能优化对程序员来说是一个非常重要的问题.一个小问题可能成为一个大的系统的瓶颈.但是对于程序员来说,通过自身去优化代码是十分困难的.幸运的是,有一些非常棒的工具可以帮助程序员进行 ...

  2. 11个Visual Studio代码性能分析工具

    软件开发中的性能优化对程序员来说是一个非常重要的问题.一个小问题可能成为一个大的系统的瓶颈.但是对于程序员来说,通过自身去优化代码是十分困难的.幸运的是,有一些非常棒的工具可以帮助程序员进行代码分析和 ...

  3. 系统级性能分析工具perf的介绍与使用

    测试环境:Ubuntu16.04 + Kernel:4.4.0-31 apt-get install linux-source cd /usr/src/tools/perf make &&am ...

  4. 11 个 Visual Studio 代码性能分析工具

    软件开发中的性能优化对程序员来说是一个非常重要的问题.一个小问题可能成为一个大的系统的瓶颈.但是对于程序员来说,通过自身去优化代码是十分困难的.幸运的是,有一些非常棒的工具可以帮助程序员进行代码分析和 ...

  5. 系统级性能分析工具 — Perf

    从2.6.31内核开始,linux内核自带了一个性能分析工具perf,能够进行函数级与指令级的热点查找. perf Performance analysis tools for Linux. Perf ...

  6. 前端性能分析工具利器

    作者:basinwang,腾讯 PCG 前端开发工程师 大型项目容易遇到性能问题,一般来说,当我们遇到性能瓶颈的时候,才会开始去进行相应的分析.分析的方向除了业务本身的特点相关之外,常见的还可以借助一 ...

  7. 超好用的自带火焰图的 Java 性能分析工具 Async-profiler 了解一下

    如果你经常遇到 Java 线上性能问题束手无策,看着线上服务 CPU 飙升一筹莫展,发现内存不断泄露满脸茫然.别慌,这里有一款低开销.自带火焰图.让你大呼好用的 Java 性能分析工具 - async ...

  8. linux 系统级性能分析工具 perf 的介绍与使用

    目录 1. 背景知识 1.1 tracepoints 1.2 硬件特性之cache 2. 主要关注点 3. perf的使用 3.0 perf引入的overhead 3.1 perf list 3.2 ...

  9. linux 性能分析工具perf

    perf 性能监控分析工具 perf 工具下载 https://cdn.kernel.org/pub/linux/kernel/tools/perf/v5.9.0/perf-5.9.0.tar.gz ...

最新文章

  1. VC 单文档程序 隐藏程序及任务栏图标
  2. 2021全球产品经理大会蓄势待发!
  3. Hyper-v Server重复数据删除技术
  4. 实验二初入linux,实验二:熟悉Linux的环境
  5. web.py mysql_用Web.py 连接 MySQL 的时候怎么样连接远程数据库
  6. windows+php+mysql+apache(wamp)安装配置问题
  7. Python基础第一天
  8. (亲测)Hbase安装(傻瓜式安装)
  9. java数据库技术_JAVA数据库技术
  10. [转载] python程序所需的图片通过base64编码成字符串放在代码中
  11. 使用hiredis接口(Synchronous API)编写redis客户端
  12. Dot net GC
  13. bartend无法自动打印的问题
  14. csgo自建局域网服务器,csgo怎么创建局域网游戏
  15. 保姆级教程,阿里云快速搭建个人网站
  16. java线上CPU、内存打满处理
  17. 一个假冒的序列号被用来注册Internet Download Manager。IDM正在退出...解决办法
  18. 计算机视觉工程师装机软件一览
  19. gdc服务器硬盘修复,GDC硬盘检测、阵列新建和修复.pptx
  20. matlab 调用comsol,Using matlab function in comsol model

热门文章

  1. 计算机基础|你知道汇编语言吗?
  2. 超全计算机的基础知识,网工小白必看(下)
  3. 搜索 ElasticSearch 快速检索的原理(深度好文)
  4. java面试题及答案2020 大汇总
  5. 网络连接之HttpClient,Volley,xUtils
  6. 关键词分析应包括哪些内容?
  7. 光刀选用尽可能大的刀
  8. 开源雨林 | 开源运营是开源社区的护城河——开源社理事、华为开源能力中心开源专家庄表伟访谈实录...
  9. kaggle房价预测(House Prices: Advanced Regression Techniques)数据内容超级详细整理
  10. scrapy框架---带你飞向爬虫路(九)