这个答案不容易找到。我在HTML5中搜索了RequestAnimationFrame上的许多权威文档,似乎从未指定它在GPU中运行。有时会推断出GPU,但引用似乎是推论。
所以我认为RequestAnimationFrame是CPU,只是从未明确说明。
有没有人在CPU或GPU上找到明确的分类?
我想如果它是GPU,它将无处不在。感谢。
答案 0 :(得分:6)
严格来说,它总是在CPU上运行,就像所有JavaScript一样。但它不是" CPU vs GPU"对动画很重要的区别。
重要的是你在回调中开始的操作类型是否会加速GPU加速。这与启动它们的方式无关,因此对于GPU加速requestAnimationFrame
根本不会改变任何内容。如果浏览器能够GPU加速操作,则会(例如,如果您为opacity
或transform
制作动画)。如果它不能(例如,如果您为width
或height
制作动画),则表示不会。
不过,最好使用requestAnimationFrame
而不是setTimeout
/ setInterval
,因为它允许浏览器选择最佳的回调时间和频率(例如节省电池电量)减慢隐形标签中的动画速度。)