如何停止我的 CSS 动画导致 Firefox 和 Xorg CPU 使用率过高?
How can I stop my CSS animation causing high Firefox and Xorg CPU usage?
http://pepijndevos.nl/ 在 Firefox 上大量使用 CPU,令人惊奇的是 Xorg 也使用。
基本上没有 JS,当然也没有 window 调整大小或类似的东西。
Tasks: 245 total, 2 running, 243 sleeping, 0 stopped, 0 zombie
%Cpu(s): 8,7 us, 0,5 sy, 0,0 ni, 90,6 id, 0,0 wa, 0,0 hi, 0,2 si, 0,0 st
KiB Mem: 8052196 total, 3121524 used, 4930672 free, 292388 buffers
KiB Swap: 8266748 total, 0 used, 8266748 free. 1258032 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1223 root 20 0 567100 238528 73272 S 37,9 3,0 22:33.44 Xorg
5036 pepijn 20 0 2257996 543324 94428 R 31,9 6,7 16:26.62 firefox
页面上唯一的 JS 是 Google Analytics、MathJax 和这个小点 http://pepijndevos.nl/js/magic.js
我在 Firefox 调试器中进行了性能分析,它只显示了 Paint 和 Recalculate Style。
原因似乎是背景图片上的 CSS 动画。当我删除动画时,系统回到空闲状态。违规行是
@keyframes spin { 100% { transform:rotate(360deg) } }
我只是很慢地旋转它,所以完全没有必要以 60fps 渲染整个东西。有没有办法让它使用更少CPU?我可能需要恢复到多年前使用的丑陋的 setInterval 解决方案。
(有几个类似的问题,但我觉得这不是重复的,因为我的动画实际上不应该对任何现代 CPU 征税,与许多带有阴影和其他特殊的快速动画相反其他问题的影响)
我猜问题出在position: fixed,但我不确定。
你可以做些什么来节省 CPU 就是减少它的更新频率:
animation: spin 600s steps(3600) infinite;
将使轮子静止1/6秒。 (或者说,每秒刷新6次)
http://pepijndevos.nl/ 在 Firefox 上大量使用 CPU,令人惊奇的是 Xorg 也使用。
基本上没有 JS,当然也没有 window 调整大小或类似的东西。
Tasks: 245 total, 2 running, 243 sleeping, 0 stopped, 0 zombie
%Cpu(s): 8,7 us, 0,5 sy, 0,0 ni, 90,6 id, 0,0 wa, 0,0 hi, 0,2 si, 0,0 st
KiB Mem: 8052196 total, 3121524 used, 4930672 free, 292388 buffers
KiB Swap: 8266748 total, 0 used, 8266748 free. 1258032 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1223 root 20 0 567100 238528 73272 S 37,9 3,0 22:33.44 Xorg
5036 pepijn 20 0 2257996 543324 94428 R 31,9 6,7 16:26.62 firefox
页面上唯一的 JS 是 Google Analytics、MathJax 和这个小点 http://pepijndevos.nl/js/magic.js
我在 Firefox 调试器中进行了性能分析,它只显示了 Paint 和 Recalculate Style。
原因似乎是背景图片上的 CSS 动画。当我删除动画时,系统回到空闲状态。违规行是
@keyframes spin { 100% { transform:rotate(360deg) } }
我只是很慢地旋转它,所以完全没有必要以 60fps 渲染整个东西。有没有办法让它使用更少CPU?我可能需要恢复到多年前使用的丑陋的 setInterval 解决方案。
(有几个类似的问题,但我觉得这不是重复的,因为我的动画实际上不应该对任何现代 CPU 征税,与许多带有阴影和其他特殊的快速动画相反其他问题的影响)
我猜问题出在position: fixed,但我不确定。
你可以做些什么来节省 CPU 就是减少它的更新频率:
animation: spin 600s steps(3600) infinite;
将使轮子静止1/6秒。 (或者说,每秒刷新6次)