Chrome中的FPS限制为60fps。

6
我一直在使用JavaScript处理Canvas,但我发现Chrome的FPS似乎会被限制在60fps,直到打开检查器(从右键点击并单击“检查元素”访问的开发工具)为止。
如果我在其他浏览器中运行自己的代码,则没有FPS问题,同样,如果在打开检查器工具的情况下在Chrome中运行,则没有问题,它立即跃升至每秒钟120帧。
作为实际示例的一种方式,请查看此页面:http://mbostock.github.io/d3/talk/20111018/collision.html 如果我在未打开检查器工具的情况下查看此页面,则FPS图表显示每秒钟40到60帧。但是,只要打开检查器,FPS立即再次跳至120 FPS,并且在视觉和物理上更加响应灵敏。
我真的很难理解这是为什么,理想情况下,我希望我的代码像打开检查器窗口一样运行。因为实际上处理的时间似乎大大减少了。
这是在非调试环境中执行代码的已知限制吗?
如果有任何见解,将不胜感激,谢谢 :)

2
你是通过什么方式测量FPS的?你所指的“FPS图表”是指哪一个? - user229044
2
也许是因为打开检查器后,页面变得更小且绘制速度更快。在该示例中调整浏览器窗口大小似乎具有与打开检查器相同的效果。 - sbking
Chrome 的 fps 测量工具非常昂贵,它似乎会减慢显示速度并创建相当多的垃圾(导致帧丢失):不要使用它,而是自己测量时间/fillText。 - GameAlchemist
@meagar - 这是你可以在 Chrome 中启用的一个功能。 - user1243584
2
@Cuberto - 你说得对,我也遇到了同样的问题,在进一步调查后发现可能是由于设置了两个显示器(请参见我发布的答案)导致的。 - user1243584
显示剩余4条评论
2个回答

1
在阅读Cuberto的发现后进一步实验后,似乎这可能是Chrome和双监视器设置的一个错误。如Cuberto建议的那样,我尝试将窗口调整得更小一些,这使FPS回升。即使没有将屏幕最大化,但仍然让它跨越大部分屏幕,它也会以最大FPS运行。有趣的是,我禁用了第二个监视器,然后将Chrome放回最大化状态,一切正常。但当我重新启用第二个监视器时,FPS再次下降,因此这似乎是问题所在。
更新:似乎其他人也遇到了同样的双监视器问题(请参见评论):为什么Chrome会将帧速率限制在30fps?

0
这是一个关于分辨率的问题。 在Chrome中打开检查器时,您基本上正在更改当前窗口的分辨率,这意味着它运行得更快。就是这样。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接