页面渲染合成(补充)

简介: 在上一篇文章老生常谈之从输入URL到页面呈现的过程中描述了页面渲染流程,其中涉及页面的布局(Layout)和绘制(Painting),实际在绘制之后还有一个步骤叫做合成(Compositing)。

在上一篇文章老生常谈之从输入URL到页面呈现的过程中描述了页面渲染流程,其中涉及页面的布局(Layout)和绘制(Painting),实际在绘制之后还有一个步骤叫做合成(Compositing)。


Compositing


在其它大佬的文章中将这一步说的非常清楚,当然还是很难懂,因为比较抽象,平常在工作中完全没有接触。这里我归纳下我的理解。


  1. 在合成前的渲染过程将 DOM 树转化为渲染层

110.png


  1. 合成这步将渲染层合并为合成层,有很多方法会产生新的合成层,这些方法也是常说的 css 硬件加速的方法

  • 3D transforms:translate3d、translateZ 等

  • video、canvas、iframe 等元素

  • 通过 Element.animate() 实现的 opacity 动画转换

  • 通过 СSS 动画实现的 opacity 动画转换

  • position: fixed

  • 具有 will-change 属性

  • 对 opacity、transform、fliter、backdropfilter 应用了 animation 或者 transition

  1. 合成之后会有不同的合成层,合成层将独立在 GPU 渲染

  2. 在有 GPU 的时候其实渲染都是在 GPU 进行的,但是页面的布局(Layout) 和 绘制(Painting),渲染层计算这些都是在 CPU 进行计算的,会消耗 CPU。

  3. GPU加速的原理是,将元素提升为单独的合成层,在处理合成层动画时,直接在

  4. GPU 进行动画计算渲染,无需再重新走重绘(Repaint)的流程而耗费 CPU,速度也更快更流畅。

  5. 合成层也并不是没有缺点,每个合成层在 GPU 单独渲染都要占用额外内容,过多的

  6. 合成层会导致内存占用过高(层爆炸)

后话

以上内容是在阅读其它大佬博客后总结的,可能会有不少理解错误的地方,欢迎指正。


参考





相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
5月前
|
前端开发 JavaScript 机器人
中后台前端开发问题之动态标注组件渲染到界面上如何解决
中后台前端开发问题之动态标注组件渲染到界面上如何解决
38 0
|
7月前
|
Linux iOS开发 MacOS
【随手记】maplotlib.use函数设置图像的呈现方式
【随手记】maplotlib.use函数设置图像的呈现方式
70 0
|
缓存 JavaScript 前端开发
如何优化代码性能、如何处理异步请求或者如何实现动态效果
如何优化代码性能、如何处理异步请求或者如何实现动态效果
74 0
Threejs入门进阶实战案例(4):addEventListener() 方法自适应窗口显示的方案
Threejs入门进阶实战案例(4):addEventListener() 方法自适应窗口显示的方案
137 0
|
前端开发 JavaScript C++
JavaScript实现碎片合成大图
JavaScript实现碎片合成大图
120 0
|
前端开发
#yyds干货盘点 【React工作记录六】如何实现一个图片的伪预览效果
#yyds干货盘点 【React工作记录六】如何实现一个图片的伪预览效果
127 0
|
前端开发 JavaScript Go
前端性能优化实践之 加载和渲染原理(8)
前端性能优化实践之 加载和渲染原理(8)
381 0
|
前端开发
前端工作总结291-uni-修改未完成数据动态渲染
前端工作总结291-uni-修改未完成数据动态渲染
96 0
|
数据采集 搜索推荐 前端开发
超详细图文解释——客户端渲染和服务器渲染的区别
我们都知道,网页上的很多内容之所以能那么丰富,是因为大量的css、js去渲染出这个页面。那么他们是如何渲染的呢?那么就要说到我们本文的两种渲染方式了,即客户端渲染和服务端渲染。 本文将分别讲述两种渲染方式的区别和他们各自的优缺点,以及他们在真实项目中的运用。如果不想看具体过程讲解的可以直接跳到最后的总结看结论.
1056 0
超详细图文解释——客户端渲染和服务器渲染的区别
|
vr&ar 图形学
【100个 Unity小知识点】☀️ | Unity 中的原始预制体 和 预制体变体 的区别和作用
Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。 包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。 Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。 也可以简单把 Unity 理解为一个游戏引擎,可以用来专业制作游戏!
【100个 Unity小知识点】☀️ | Unity 中的原始预制体 和 预制体变体 的区别和作用

热门文章

最新文章

下一篇
开通oss服务