【发布时间】:2021-05-05 18:57:16
【问题描述】:
我正在开发由块组成的等距 3D 环境的渲染(我的世界的一种)。
我正在使用它的 2d 上下文在画布中绘制它(并做一些数学运算)。
在页面加载时会创建一个循环,每帧添加一些块 (window.requestAnimationFrame(fn)),但我在渲染时遇到了低 fps 的问题。
这是我第一次如此深入地进行性能分析,我正在努力理解 Chrome Devtools 的性能视图。
看结果:
我的理解是该帧需要 115.9 毫秒才能完成,但查看过程似乎只需要大约 30 毫秒就可以使用画布 API 进行计算,但在任务栏中(在 Animation Frame Fired ) 我看到完成框架的时间要长得多。
这是一种常见的行为吗?我是否犯了一些愚蠢的错误,以某种方式浪费了性能?
(如果是常见的行为,那期间发生了什么?是实际的绘图吗?)
我阻止了,因为我想知道是否应该尝试改进我的绘图算法,或者我应该寻找其他地方来解决瓶颈
【问题讨论】:
-
Devtools 默认不显示某些活动,因此您需要手动启用它们,puu.sh/FrDS5/8bc05c5844.png(在当前的 Chrome 中是 somewhat complicated,但在 Chrome Canary 中很简单)。您还可以使用 chrome://tracing 获取更多信息或启用paint instrumentation。