如何调试 Firefox CPU 使用率

如何调试 Firefox CPU 使用率

我正在寻求建议,在哪里寻找以下情况的可能原因:

我最喜欢的 JavaScript 浏览器游戏的 CPU 使用率(https://grepolis.com) 在空闲时太高。当没有输入时,几乎没有动画可见(只有一些数字每隔几秒变化)。

内置的 Web 开发人员工具 (Shift-F5) 显示一系列requestAnimationFrameRecalculate Style,每帧重复一次(60 fps)。这两个调用在大多数情况下都显示 CPU 使用率低于 0.1 毫秒。这意味着每秒大约十毫秒,或 1% 的 CPU 使用率。超过一分钟没有网络活动。

但在任务管理器或进程资源管理器中可见的实际 CPU 使用率约为 CPU 核心的 75%(一分钟内额外使用了 44 秒的 CPU 时间)。没有加载插件容器 - 活动在主 Firefox 进程中(没有 flash 或其他插件)。根据进程资源管理器,活动线程在firefox.exe!GetHandleVerifier谷歌上有一个起始地址,但对此没有给出任何解释。进程资源管理器中显示的此线程的调用堆栈每次看起来都非常不同,所以我没有识别出相似之处。

当切换到另一个浏览器选项卡并最小化 Firefox 窗口时,CPU 使用率降低到 CPU 核心的 14%(每分钟 8 秒的 CPU 时间),因此我确信 CPU 占用高是由该游戏的几兆字节的 JavaScript 代码引起的,这些代码太大而无法读取。

如何找到 CPU 占用高的根本原因,即找到导致 CPU 占用高的组件?

该问题与浏览器版本无关(多年来一直如此),并且会随着运行时间而恶化。重新加载页面可以缓解这种情况,但并不能解决问题(尽管应用程序处于空闲状态,但 CPU 使用率仍然很高)。有足够的内存可用,我使用的是 64 位版本,但发现与 32 位版本没有区别。Win 7 Professional。我没有检查其他操作系统或浏览器。

这个游戏是唯一一个我不清楚 CPU 使用情况的网站:我使用的所有其他网站只有在活动时才消耗 CPU。

相关内容