Я нашел проблему! и решил это. Я удалил все рисунки и оставил только clearRect:
const animation = () => {
ctx.clearRect(0, 0, width, height)
animationFrame = window.requestAnimationFrame(animation)
}
animationFrame = window.requestAnimationFrame(animation)
Этот код просто очищает холст и не делает ничего полезного, однако он по-прежнему загружает процесс GPU более чем на 50%.
Чтобы решить эту проблему Я заменил requestAnimationFrame
на setInterval
, что сокращает рендеринг, 20 раз в секунду достаточно для моей анимации, и теперь GPU чувствует себя намного лучше.
PS Эта проблема могла быть chrome и ma c Speci c, потому что эта и другие css анимации работают намного плавнее и лучше на android телефоне, windows chrome и firefox на macbook