代码之家  ›  专栏  ›  技术社区  ›  MathuSum Mut

如何对CSS3硬件加速translate3d进行基准测试,我应该将其应用于body元素吗?

  •  0
  • MathuSum Mut  · 技术社区  · 6 年前

    this question 关于 transform: translate3d(0,0,0) transform: translateZ(0) ,以及它们如何为某些/大多数平台和浏览器上的动画启用CSS3硬件加速,特别是与 -webkit-backface-visibility: hidden -webkit-perspective: 1000 .

    1. 如何对是否添加 转换:translate3d(0,0,0)
    2. 我应该在哪里添加 转换:translate3d(0,0,0) body 元素,还是比用转换专门标记动画元素慢?

    如果第一个问题被回答了,我就能自己回答第二个问题。那么我该如何对动画平滑性进行基准测试呢?

    0 回复  |  直到 6 年前
        1
  •  2
  •   Bryce Howitson    5 年前

    网络上的硬件加速是 有点 主观的。

    只是因为你说服了浏览器 hardware-acceleration

    1. 您的GPU无法解决由于强制浏览器重新绘制/重绘窗口的重要部分而导致的不稳定动画。所以你要明白 causes a browser to repaint . 一般来说,复合特性 opacity transform 是最好的。
    2. 人眼可以真实地感知高达150帧/秒的帧速率。但是,2019年电脑平均显示频率通常在60Hz左右,相当于60fps。基本上,你需要一个高端的游戏监视器来测试人类的感知能力。所有这些都说明,在一个已经高性能的动画上,用GPU获得一个小的FPS增加是没有价值的。

    基准动画

    Chrome的Devtools有几个有用的工具来帮助您理解动画。我要用谷歌的乐趣 Game of the Year 对于这些例子。

    . 你必须让这个开始录制,然后它会显示你在一个时间点或平均值作为一个酒吧水平的“帧”标签。它还将显示一个特定的合成需要多长时间。

    enter image description here

    “图层”选项卡 通过选择三点图标->更多工具->层,可以在开发工具中访问此项

    enter image description here

    打开此选项卡后,可以选择单个元素以查看绘制计数、内存使用情况以及正在使用的视觉合成类型(以及原因)。

    enter image description here

    最后,通过打开“更多工具”菜单中的“渲染”面板,可以添加实时FPS计数器并重新绘制可视化效果。这将向实际的浏览器窗口添加覆盖,以便您可以跟踪更改时发生的情况。

    enter image description here enter image description here