前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【ChromeDevTool】Performace的简单使用

【ChromeDevTool】Performace的简单使用

作者头像
前端修罗场
发布2023-10-07 18:52:59
2100
发布2023-10-07 18:52:59
举报
文章被收录于专栏:Web 技术

说到Chrome DevTool,你是不是和我一样,经常在Element,Console,NetWrok...里梭哈 再梭哈

为什么要使用Performance

Performance 作为Web性能监控的工具,能帮助开发者发现性能低效的源头。特别是在页面上渲染动画的时候,Performance可是一把利刃。

So,要知道Web的性能状况,需要先知道页面是怎么渲染出来滴!

浏览器渲染流程

  1. 使用 HTTP 协议或者 HTTPS 协议,向服务端请求页面
  2. 浏览器解析 HTML 代码,构建成 DOM 树
  3. 计算 DOM 树上的 CSS 属性
  4. 根据 CSS 属性对元素逐个进行渲染,以位图形式存储至内存中
  5. 对位图进行合成,增加后续绘制的速度(Composition
  6. 合成之后,再绘制到页面上

再用一张图来理解:

有了上面的渲染流程,我们大概知道该从哪个步骤下手优化页面性能(就是4、5、6步骤)。这也是Performance要做的。

接下来,我们以一个动画为例子,讲解为什么css3中加了transform等属性,能提升动画的渲染性能。

案例:动画

打开这个动画链接,然后点击Performance -> recode button进行记录一段时间,有如下画面:

其中,有颜色的部分:

  • 土黄色:表示Javascript
  • 紫色:表示Style、Layout
  • 绿色:Paint、Composite

哪个部分占用的多,表示那个部分的某帧在渲染时需要花费较多花销。

其实,动画的渲染流程也类似:

  1. Javascript
  2. Style
  3. Layout
  4. Paint
  5. Componsite

浏览器如何优化

为了能让动画渲染每一帧的时间保持在较好的时间内(16.6667ms = 1 / 60fps),当浏览器对DOM的CSS属性进行计算时,如果扫描到该DOM节点的Style上包含transform等样式属性,会将这个DOM提出来,作为合成层。(

所谓:合成层是指:

某些特殊的渲染层会被认为是合成层(Compositing Layers),合成层拥有单独的 GraphicsLayer,而其他不是合成层的渲染层,则和其第一个拥有 GraphicsLayer 父层公用一个

通常情况下,每个DOM节点会拥有一个Render Object,每个Render Object 知道如何绘制一个节点的内容, 他通过向一个绘图上下文(GraphicsContext)发出必要的绘制调用来绘制节点。每个 GraphicsLayer 都有一个 GraphicsContext,GraphicsContext 会负责输出该层的位图,位图是存储在共享内存中作为纹理上传到 GPU 中,最后由 GPU 将多个位图进行合成,然后 draw 到屏幕上

通过Chrome Dev tool ---> Layer,我们也可以看到相关的层,并标注了细节。

由此可见,通过分析浏览器的渲染流程,进一步探索渲染细节,能帮助开发者感知需要改善的部分。

与Chrome DevTool 相关的文章:
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么要使用Performance
    • 浏览器渲染流程
    • 案例:动画
      • 浏览器如何优化
        • 与Chrome DevTool 相关的文章:
    相关产品与服务
    应用性能监控
    应用性能监控(Application Performance Management,APM)是一款应用性能管理平台,基于实时多语言应用探针全量采集技术,为您提供分布式性能分析和故障自检能力。APM 协助您在复杂的业务系统里快速定位性能问题,降低 MTTR(平均故障恢复时间),实时了解并追踪应用性能,提升用户体验。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档