我一直在使用JavaScript对画布进行一些工作,我注意到Chrome中的FPS似乎达到60fps,直到打开检查器为止(右键单击并点击“Inspect Element”访问开发工具) )。
如果我在其他浏览器中运行自己的代码,则没有FPS问题,同样如果我在Chrome中运行检查器工具时没有问题,它会立即以每秒120帧的速度拍摄。
作为展示实际示例的一种方式,请查看此页面:http://mbostock.github.io/d3/talk/20111018/collision.html
如果我在没有打开检查器工具的情况下查看此页面,则FPS图表显示每秒40到60帧。但是,一旦检查员打开,FPS会立即再次跳到120 FPS,并且在视觉上和身体上都能更快地响应。
我真的很难理解为什么会这样,并且理想情况下我希望我的代码能够像检查器窗口一样打开。基本上,处理的时间似乎正在大幅下降。
这是在非调试环境中执行的已知代码限制吗?
非常感谢任何见解,谢谢:)
答案 0 :(得分:1)
在阅读Cuberto的调查结果后进行了一些实验后,似乎这可能是Chrome和双显示器设置的错误。
正如Cuberto建议的那样,我尝试将窗口调整得更小一些,这使得FPS的拍摄重新开始。即使没有屏幕最大化,但仍然有它跨越大部分屏幕,它将是最大FPS。
奇怪的是,我禁用了我的第二台显示器,然后将Chrome重新置于最大化状态,这很好。
当我重新启用第二台显示器时,FPS再次击落,所以看起来这就是问题所在。
更新:似乎其他人在双显示器上遇到同样的问题(请参阅评论):Why would Chrome cap frame rate at 30fps?
答案 1 :(得分:0)
这是一个解决问题。 在chrome中打开检查器时,您基本上会更改当前窗口的分辨率,这意味着它运行得更快。这就是所有人。