为什么requestAnimationFrame回调任务需要这么长时间?

我正在制作游戏,尽管在合理的预算范围内游戏逻辑/渲染效果很好,但仍无法达到60fps。由于浏览器开销,60fps的典型预算约为10-12ms。如果您看到此屏幕快照,则负责执行rAF回调的任务将比回调本身长得多。

为什么requestAnimationFrame回调任务需要这么长时间?

代码非常简单,使用CanvasRenderingContext2D循环了约100个项目,这些项目将六边形图块绘制到画布上。我消除了所有保存/恢复性能的调用。

如果有人可以解释为什么在任务Update Layer Tree结束时紫色小片Composite Layers和绿色片之间的时间这么长,那会有所帮助。或者,如果有人对使用rAF表现出任何技巧/窍门。

我有一个理论,就是我某种程度上在rAF回调中保留了一个引用,这导致它等待等待?

此仓库位于https://github.com/LudicGames/arce

更新:这是GPU行的另一帧屏幕截图。 GPU行显示了很多用法,但似乎没有任何方法可以知道什么。大概渲染了我刚刚写的上下文,但是为什么这么久?

您可以在http://arce.io尝试自己进行表演。

为什么requestAnimationFrame回调任务需要这么长时间?

keith_ye_mao 回答:为什么requestAnimationFrame回调任务需要这么长时间?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3127412.html

大家都在问