HTML5 RequestAnimationFrame 运行 是在 CPU 还是 GPU 上?

Does HTML5 RequestAnimationFrame run on CPU or GPU?

这个答案不容易找到。我在 HTML5 中搜索了很多关于 RequestAnimationFrame 的权威文档,似乎它从未在 GPU 中被指定为 运行。 GPU 有时会被推断出来,但参考文献似乎是必然的。

所以我认为 RequestAnimationFrame 是 CPU,只是从未明确说明。

有没有人在 CPU 或 GPU 上找到明确的分类?

我想如果它是 GPU,它就会无处不在。谢谢

严格来说,它总是在 CPU 上运行,就像所有 JavaScript 一样。但这不是 "CPU vs GPU" 区别对动画很重要的部分。

重要的是您在回调中启动的操作类型是否会得到 GPU 加速。这与您启动它们的方式无关,因此对于 GPU 加速 requestAnimationFrame 根本不会改变任何东西。如果浏览器能够 GPU 加速操作,它会(例如,如果你动画 opacitytransform)。如果它不能(例如,如果你为 widthheight 设置动画),那么它就不会。

不过,最好使用 requestAnimationFrame 而不是 setTimeout/setInterval,因为它允许浏览器选择回调的最佳时间和频率(例如,通过放慢速度来节省电量)不可见标签中的动画)。