故障现象: QQ组件可导致IE10无响应。 解决方案:
IE10有时候就像是假死一样地,偶尔无响应,或者是打开网页或者进行任何操作都奇慢无比。
Windows 8 里面自带的新版任务管理器呀,就已经带有分析进程等待链的功能了。以前我们可能要使用resmon 资源监视器来完成。
在详细信息里面,找到iexplore.exe进程,然后右击选择"分析等待链",可以看到,IE的一个或多个线程的确在等待完成网络I/O,而 在等待链树状结构中,我们可以看见,它在等待"FlashUtil_ActiveX.exe",PID为2248,可线程信息缺失。
看见的这个"FlashUtil_ActiveX.exe"就是 Windows 8 内置的 Flash 的针对IE浏览器的插件的执行体。难怪偶尔网页会死掉,并且不可恢复,原来是每次死的时候,都是在用IE10看视频。原以为,是IE内置的这个 Flash不稳定,想想也觉得有一定的可能性,因为它不论怎样,都还是Adobe开发的(查看了执行体的文件信息)。可是发现中止它以后,没多久还是有这个问题。又不敢随便将其删除,以免引发Windows 8里面不可预知的后果。暂且没有做实验研究删除它会有什么结果、而后补装一个Adobe下载的Flash Player又是否会 使引发的问题消失。
其实我当时应该直接找到这个FlashUtil的进程,然后再看看它究竟在等待什么,也许可以看到它也在等待什么资源,或是用WinDbg看看能否有进一步的诊断。可当问题又重现时,再看另一个IE的进程,恰好发现该进程得到了完整详细的等待链信息:
可以清楚地看见,其实,FlashUtil_ActiveX.exe 也在等待一个线程,来自 QQExternal.exe.这才恍然大悟,问题重现时,QQ的确处于运行状态。于是,以后每次发生看Flash视频就死网页的情况时,结束掉QQExternal进程, 问题立马就解决了,网页马上起死回生,加载出来,然后播放视频。
|