我的 Firefox 安装了大量附加组件。有时,Firefox 在没有 Flash 的页面上会卡在高 CPU 使用率中。我想以比随机禁用扩展更专业的方式解决导致此问题的原因,因为这种方法不可靠,因为高 CPU 使用率无法以可靠的方式重现。
有没有办法从 Firefox 生成线程转储来查看哪些线程正在运行以及它们将时间花在了哪里?
平台:Mac OS X(如果 Firefox 这里没有平台中立的工具...)
答案1
调试说明位于https://developer.mozilla.org/en/Debugging_on_Mac_OS_X但在你花大量时间之前,先回顾一下http://support.mozilla.com/en-US/kb/Firefox%20consumes%20a%20lot%20of%20CPU%20resources- 调试是一个缓慢而繁琐的过程,其他方法可能会更快地获得回报:
首先 - 通过查看它是否在安全模式下发生来确定它是否是扩展。其次,如果它是扩展,因为大多数扩展都是解释代码,因此很难从调试器或线程转储中区分是哪个扩展导致了它。排除法仍然是最好的选择 - 不是随机禁用,而是系统地处理可能的嫌疑人。最后,有几个“常见的嫌疑人”,记录在各种知识库、论坛和邮件列表中。http://kb.mozillazine.org/Problematic_extensions就是这样一个列表。Mozilla 会尝试自动识别导致启动时间缓慢的https://addons.mozilla.org/en-US/firefox/performance/同样 - 虽然启动时间慢并不能保证在 Firefox 运行时也会占用大量 CPU,但由于相关性足够大,因此值得检查首先列出的附加组件。