【问题标题】:Does HTML5 RequestAnimationFrame run on CPU or GPU?HTML5 RequestAnimationFrame 是在 CPU 还是 GPU 上运行?
【发布时间】:2017-09-29 02:07:41
【问题描述】:
这个答案不容易找到。我在 HTML5 中搜索了许多关于 RequestAnimationFrame 的权威文档,似乎从未指定它在 GPU 中运行。 GPU 有时会被推断出来,但引用似乎是必然的。
所以我认为 RequestAnimationFrame 是 CPU,只是从未明确说明过。
有没有人找到关于 CPU 或 GPU 的明确分类?
我想如果它是 GPU,它会无处不在。谢谢。
【问题讨论】:
标签:
html
gpu
cpu
requestanimationframe
【解决方案1】:
严格来说,它总是在 CPU 上运行,就像所有 JavaScript 一样。但对于动画来说,“CPU 与 GPU”的区别并不重要。
重要的是您在回调中启动的各种操作是否将是 GPU 加速的。这与您启动它们的方式无关,因此对于 GPU 加速 requestAnimationFrame 根本不会改变任何东西。如果浏览器能够 GPU 加速操作,它会(例如,如果您为 opacity 或 transform 制作动画)。如果不能(例如,如果您为 width 或 height 设置动画),则不会。
不过,最好使用requestAnimationFrame 而不是setTimeout/setInterval,因为它允许浏览器选择回调的最佳时间和频率(例如,通过减慢不可见选项卡中的动画来节省电池电量)。