Chrome 中的 FPS 上限为 60fps

6 javascript performance google-chrome frame-rate canvas

我一直在使用 JavaScript 对画布进行一些工作,我注意到 Chrome 中的 FPS 似乎上限为 60fps,直到打开检查器(通过右键单击并单击“检查元素”访问开发工具)。

如果我在其他浏览器中运行自己的代码,则不会出现 FPS 问题,同样,如果我在检查器工具打开时在 Chrome 中运行,也不会出现问题,它会立即达到每秒 120 帧。

作为展示实际示例的方法,请查看此页面:http://mbostock.github.io/d3/talk/20111018/collision.html

如果我在未打开检查器工具的情况下查看此页面,则 FPS 图表显示每秒 40 到 60 帧。然而,一旦检查器打开,FPS 立即再次跳至 120 FPS,并且视觉和物理上的响应更加灵敏。

我真的很难理解为什么会这样,并且理想情况下希望我的代码像检查器窗口打开一样运行。从本质上讲,处理时间似乎大幅减少。

这是在非调试环境中执行代码的已知限制吗?

任何见解将不胜感激,谢谢:)

小智 1

在阅读了 Cuberto 的发现后进行了进一步的实验后,这似乎可能是 Chrome 和双显示器设置的一个错误。

正如 Cuberto 建议的那样,我尝试将窗口调整得小一点,这使得 FPS 回升。即使没有最大化屏幕,但仍然占据屏幕的大部分,它也会处于最大 FPS。

奇怪的是,我禁用了第二个显示器,然后将 Chrome 恢复到最大化状态,一切正常。

当我重新启用第二个显示器时,FPS 再次下降,所以看来这就是问题所在。

更新:似乎其他人在双显示器上也遇到了同样的问题(请参阅评论):为什么 Chrome 将帧速率限制在 30fps?