是否有可能找到导致 Firefox 随机出现 13% CPU 峰值并完全冻结的确切原因?我说的“确切”是指找到哪些函数/调用/模块/线程/驱动程序是导致该问题的直接原因(或与该问题尽可能密切相关),而不是单纯地反复试验禁用/关闭某些东西,以尝试估计什么与什么相冲突。
过去几个小时,我一直在阅读有关 Windows 调试/堆栈跟踪/xperf 的文章,试图磨练我的技能,以获得更好的基础知识。在我阅读的过程中,Firefox 一直出现问题,在任务管理器中 CPU 使用率会飙升至 13% 并持续 30 多秒,导致整个应用程序冻结。这种情况不断重复,以看似随机的间隔循环。
在某个时刻,CPU“尖叫”会停止,Firefox 会恢复意识,并出现“无响应脚本:停止??”对话框。此对话框引用了无响应的随机、看似无关的脚本。我可以看到其中至少有一个是我拥有的扩展程序(Treestyle 选项卡)。
我意识到可以通过选择性禁用插件、关闭标签、禁用插件、关闭 Flash 等方式缩小“罪犯”的范围。在这种情况下,我敢打赌有些插件会发生冲突。但我更感兴趣的是学习诊断此类问题的方法——想知道是否有可能采用更“直接”的方法,例如检查某处的堆栈跟踪、调查线程、挂钩/接口模块、驱动程序冲突等?
我有诸如 Process Monitor、Process Explorer 和 Process Hacker 之类的工具,但我并不熟悉其中的具体位置,无法找到所需的具体信息,例如谁是真正的罪魁祸首,以及它是如何“扼杀” Firefox 的(或者至少,找到与罪魁祸首尽可能密切相关的东西)。