IE10假死/未响应是为什么?
不知道大家在使用IE10的时候会不会有像是假死一样的情况发生,在打开网页或者进行任何操作都会变得奇慢无比。随着最近在网上看视频的次数越来越多,这个问题越来越突出,越来越频发。于是分析进程的等待链,看看IE究竟是在等待什么。要知道,IE总是假死,并且点击了"恢复网页"按钮后还是死掉或者打开奇慢的话,那就真的是不正常了。
Windows 8 里面自带的新版任务管理器呀,就已经带有分析进程等待链的功能了。以前我们可能要使用 resmon 资源监视器来完成。
在详细信息里面,我找到iexplore.exe进程,然后右击选择"分析等待链",可以看到,IE的一个或多个线程的确在等待完成网络 I/O,而在等待链树状结构中,我们可以看见,它在等待"FlashUtil_ActiveX.exe",PID为2248,可线程信息缺失。
哈哈,没错,你看见的这个"FlashUtil_ActiveX.exe"就是 Windows 8 内置的 Flash 的针对IE浏览器的插件的执行体。难怪偶尔网页会死掉,并且不可恢复,原来是每次死的时候,都是我在用IE10看视频。我原以为,是IE内置的这个 Flash不稳定,想想也觉得有一定的可能性,因为它不论怎样,都还是Adobe开发的(我查看了执行体的文件信息)。可是发现中止它以后,没多久还是有这个问题。我又不敢随便将其删除,以免引发Win8里面不可预知的后果。暂且没有做实验研究删除它会有什么结果、而后补装一个Adobe下载的Flash Player又是否会使引发的问题消失。各位如有测试,也欢迎告诉我。
我想,其实我当时应该直接找到这个FlashUtil的进程,然后再看看它究竟在等待什么,也许可以看到它也在等待什么资源,或是用WinDbg看看能否有进一步的诊断。可当问题又重现时,我再看另一个IE的进程,恰好发现该进程得到了完整详细的等待链信息:
可以清楚地看见,其实,FlashUtil_ActiveX.exe 也在等待一个线程,来自 QQExternal.exe. 噢!我这才恍然大悟,问题重现时,我的QQ的确处于运行状态。于是,以后每次发生看Flash视频就死网页的情况时,我结束掉QQExternal进程,问题立马就解决了,网页马上起死回生,加载出来,然后播放视频。
可是这个QQExternal究竟是什么呢?这我不知道,但是通过搜索互联网,我发现了这样的解释:
呵呵,有意思吧,这个进程是为了能让网页的Flash保持稳定的。。。的确有了它会稳定不少,稳定得一动不动。真希望该进程随时都不会出现。