性能优化的目的

我们每一次的UI的变化,都要经历以下步骤:

我们都知道像素管道有五步,JavaScript->样式计算->布局->绘制->合成

人的眼睛大约每秒可以看到 60 帧,那么就代表我们每 16.7ms 就要看到 1 帧,一帧就要经历上图的 5 步,说明我们的每一个任务(task) 不宜过长,这样就会导致用户对于界面感知的不友好性

  • fps 是指页面每秒帧数

  • fps = 60 性能极佳

  • fps < 24 会让用户感觉到卡顿,因为人眼的识别主要是24帧

根据谷歌统计的数据,用户在不同时间段内接收到的反馈,可能直接影响到对于网站的用户留存,如下图:

在这里我们不深入讲对于这方面的一些细节,这篇文章主要是给大家讲一下,如果做任务切片,如何优化界面的渲染速度和响应速度.

什么是chrome性能分析模板?

性能你都去哪儿了?俗话说知己知彼百战不殆,我们要了解性能是怎么分配的,才能做好性能优化塞,性能分析模板告诉你答案!

从加载,脚本,渲染,paint(绘制)其他,空闲,通过这种饼状图方式,我们对性能一目了然。

为何要上手该面板?

不用白不用。

开始学习

进入隐身模式 ctrl+shift+N

打开 performance 选项卡

点击图中的齿轮,为了模拟移动端,我们根据电脑性能选择相应的cpu节流。

打开截图功能

此外如果还勾选了memory根据变化还可以看到大致的垃圾回收周期,以及有无明显的内存泄露。

准备完毕,真刀真枪干。

我们先获取优化前的各种数据分析:先点击左上角 record 圆点记录优化前版本的运行时性能,过一段时间之后点击停止。圆点旁边的刷新样的标志(大佬叫圆形箭头,hhh)是用于 loading 的性能分析的按钮。

参观一下性能分析面板

图片的右边标有:FPS;CPU;NET

  1. (Analyze frames per second)帧率,FPS

红色横条表示帧率过低已经影响了用户体验,通常情况下绿条越高,帧率越高,体验越好.当帧率不影响使用的时候横条是不会出现的

cpu对应下方summary的饼图,哪块大,哪块对应的cpu消耗也就越大。

从本图中不难看出花在页面渲染的cpu消耗是最多的。

在FPS,CPU,NET上 左右移动鼠标,就可以看到各个时间点的截图,这在分析动画执行的各个阶段,以及了loading的各个阶段的时候尤其有用.

图片左边的部分:

  1. 如果记录期间包含网络请求那么在 frame 上面还有一栏 Network,会用不同的颜色表示请求不同的资源

  2. frames区域,鼠标点上去会显示当前的帧率

  1. 在记录过程中按快捷键cmd + shift + p 然后输入 show rendering (打开实时查看帧率的面板),可以看到实时的帧率变化

  2. main 代表主线程, 一段横条代表执行一个事件(函数),长度越长,花费的时间越多; 竖向代表调用栈.如果在这些横条中右上角是红色的就表示在该段代码执行过程中可能存在性能问题.

  1. 我们可以看到上图中很多黄色横条的右上角是红色的,点击展开 main中的 这一部分: 点击 animation frame fired 事件,可以在下面看到相关信息. 并且可以定位到 source 面板中的相关代码.根据定位到的代码段,阅读代码我们可以发现,问题是出在选中的蓝色背景的这句代码中

具体出了什么问题,不做讨论。[重绘与重排][Link 2]也可以看看谷歌官方文档

最后补充一下和summory tab同级的几个tab

  1. Bottom-Up,展示浏览器执行的各个操作说占用的时间

  • 在 Timeline 中选取一段时间,然后点击 Bottom-Up得到上图,图片中展示浏览器执行的各个操作说占用的时间

  1. Call Tree,表示浏览器的基本操作(事件执行,绘制...)所占用的时间

  • 同理点击Call Tree 得到上图: 表示浏览器的基本操作(事件执行,绘制...)所占用的时间

  1. Event Log,可以按照选中时间内事件发生的顺序来查看事件执行所占用的时间.

同理点击 Event Log得到上图: 可以按照选中时间内事件发生的顺序来查看事件执行所占用的时间.

最后

如果你觉得这篇内容对你挺有启发,我想邀请你帮我三个小忙:

  1. 点个「在看」,让更多的人也能看到这篇内容(喜欢不点在看,都是耍流氓 -_-)

  2. 欢迎加我微信「qianyu443033099」拉你进技术群,长期交流学习...

  3. 关注公众号「前端下午茶」,持续为你推送精选好文,也可以加我为好友,随时聊骚。

点个在看支持我吧,转发就更好了

手把手教你看懂Chrome火焰图!(调试性能必备)相关推荐

  1. ali arthas 火焰图_手把手教你看懂Chrome火焰图!(调试性能必备)

    性能优化的目的 我们每一次的UI的变化,都要经历以下步骤: 我们都知道像素管道有五步,JavaScript->样式计算->布局->绘制->合成. 人的眼睛大约每秒可以看到 60 ...

  2. 手把手教你看懂并理解Arduino PID控制库——调参改变

    2019独角兽企业重金招聘Python工程师标准>>> 引子 本文将分析<手把手教你看懂并理解Arduino PID控制库>中第三个问题:PID控制参数突变对系统的影响. ...

  3. 手把手教你看懂电脑硬件测试软件CPU-Z(二)

    建议请先看手把手教你看懂电脑硬件测试软件CPU-Z(一)~ 上一次给大家介绍了CPU-Z处理器界面的各参数含义,现在再回顾这张图,想必大家都不会陌生了. 这里简单总结下这台电脑的大致情况:这是一台笔记 ...

  4. 【朝花夕拾】Android自定义View之(一)手把手教你看懂View绘制流程——向源码要答案

    前言 原文:Android自定义View之(一)手把手教你看懂View绘制流程--向源码要答案 View作为整个app的颜值担当,在Android体系中占有重要的地位.深入理解Android View ...

  5. 教你看懂卫星场强图,更好入门烧星

    为了让更多的卫视爱好者能够很快加入星友的队伍,培养卫视新人,特发此贴.  看到很多星友在发问,怎样看懂场强图,一时半会儿也说不清楚,你看看此贴就知道了. ①各卫星参数,请参考地址www.cnsat.n ...

  6. 斯坦福首席人工智能科学家:如何教计算机看懂一张图?

    导读:一位三岁的小女孩对于这个世界也许还有很多东西要学习,但是在一个重要的任务上她已经是专家了:那就是理解并描述她所看到的东西.尽管我们目前的科技取得了前所未有的进步,但是,哪怕最先进的机器和电脑,依 ...

  7. 手把手教你看懂自然语言处理-NLP(4个典型应用+5个难点+6个实现步骤)

    导读:自然语言处理(NLP)是计算机科学,人工智能,语言学关注计算机和人类(自然)语言之间的相互作用的领域.因此,自然语言处理是与人机交互的领域有关的.在自然语言处理面临很多挑战,包括自然语言理解,因 ...

  8. 手把手教你看懂电脑硬件测试软件CPU-Z(一)

    当你选择电脑时,是否还在注意外观.颜色这些肤浅的外表吗?是不是认为买了个i7就是最新款的电脑了? 今天介绍一款电脑常用的硬件测试软件--CPU-Z,手把手教会你如何看自己电脑的CPU.显卡.硬盘.屏幕 ...

  9. 手把手教你看懂并理解Arduino PID控制库——引子

    2019独角兽企业重金招聘Python工程师标准>>> 介绍 本文主要依托于Brett Beauregard大神针对Arduino平台撰写的PID控制库Arduino PID Lib ...

最新文章

  1. 小程序点击按钮 关闭小程序
  2. drbd(一):简介和安装
  3. hadoop官方文档_hadoop体系简介
  4. python boolean_Python成为专业人士笔记-Boolean 布尔操作符研究
  5. java错误switch找不到符号,Java使用StringBuilder时--找不到符号
  6. 紧急通知!不要在MySQL中使用UTF-8编码!!!
  7. 用C#实现用免费smtp服务器(GMail)发邮件(转)
  8. npm安装失败,哪位大神帮忙看一下
  9. jq中get()和eq()的区别
  10. Android 开机优化
  11. Servlet 生命周期的过程分析 图解
  12. 学生选课系统代码--分析2需求分析
  13. 【JAVA错误笔记】 - Unable add facets project AnnotationWebService CXF 2-x Web Services
  14. 网络打印机计算机服务,网络打印机怎么设置,教您怎么设置网络打印机
  15. 坚果pro2官方rom_坚果 pro2线刷包_坚果 pro2刷机包_坚果 pro2固件包_坚果 pro2救砖包 - 线刷宝ROM中心...
  16. 按夏普计算机技巧,股票投资策略:怎样用夏普比率Sharpe Ratio寻找强势股
  17. 资料:基于MPSOC XCZU15EG-2FFVB1156I 的PCIe FMC 光纤接口处理卡设计资料保存
  18. 平安人寿保险-深圳Java开发工程师社招面试
  19. python调用foxmail 发邮件_foxmail 收取已发送邮件
  20. 【报告分享】京东大数据研究院:2020线上农产品消费趋势报告(附下载)

热门文章

  1. 西门子plc300以太网组态
  2. error:Microsoft Visual C++ 14.0 is required.Get it with “Build Tools for Visual Studio“:https://visu
  3. 前端每日实战:156# 视频演示如何用纯 CSS 创作一个飞机舷窗风格的 toggle 控件...
  4. QT系统托盘应用程序
  5. delete 删除指针
  6. 个性化学习与ChatGPT:定制教育的未来
  7. 计算机图形学八连通区域名词解释,计算机图形学名词解释
  8. 业内顶级导师团联合力推——首个“可信AI”实战大赛重磅揭幕
  9. @escaping 是什么 如何用(SwiftUI基础教程含源码)
  10. SSL加速卡的使用,对HTTPS 七层负载机的性能提升