这个答案不容易找到。我在 HTML5 中搜索了很多关于 RequestAnimationFrame 的权威文档,似乎从未指定它在 GPU 中运行。 GPU 有时会被推断出来,但引用文献似乎是必然的。
所以我认为 RequestAnimationFrame 是 CPU,只是从未明确说明。
有没有人找到 CPU 或 GPU 的明确分类?
我想如果它是 GPU,它就会无处不在。谢谢。
最佳答案
严格来说,它总是在 CPU 上运行,就像所有 JavaScript 一样。但对动画来说重要的不是“CPU 与 GPU”区别的部分。
重要的是您在回调中启动的操作类型是否会得到 GPU 加速。这与您启动它们的方式无关,因此对于 GPU 加速,requestAnimationFrame
根本不会改变任何东西。如果浏览器能够 GPU 加速操作,它就会(例如,如果您为 opacity
或 transform
设置动画)。如果它不能(例如,如果您为 width
或 height
设置动画),那么它就不会。
仍然,最好使用 requestAnimationFrame
而不是 setTimeout
/setInterval
,因为它允许浏览器选择回调的最佳时间和频率(例如,通过放慢不可见选项卡中的动画来节省电量)。
关于html - HTML5 RequestAnimationFrame 是在 CPU 上运行还是在 GPU 上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43722834/