[技术分析]再谈IE 8进程模型

ZDNet软件频道 时间:2009-03-13 作者: |  我要评论()
本文关键词:IE8 IE 软件
今天在网上看到了微软公布了一个IE8和其他2款浏览器:Firefox和Google Chrome的速度对比的白皮书和视频,感叹于IE8的高效和稳定。
今天在网上看到了微软公布了一个IE8和其他2款浏览器:Firefox和Google Chrome的速度对比的白皮书视频,感叹于IE8的高效和稳定。
然后结合之前Smallfrogs的《IE8 新特性分析:IE8的稳定性源自何处》和Alexis的《Windows Internet Explorer 8 在管理加载项与默认搜索引擎方面的改进》2篇文章来谈一下IE 8的进程模型。

首先我们看一下IE 7的进程模型

image

(图片引自于IE8 Team Blog)

在Vista的IE7当中(注:不能是XP),由2个进程掌管,一个是IEuser.exe,另外一个是IExplore.exe,其中IEuser.exe运行在medium的完整性级别,起着决定IExplorer.exe这个进程的完整性级别。

这里可以做个实验:在IE7里面打开2个空的Tab,然后分别在2个Tab上打开www.baidu.comwww.taobao.com,由于淘宝网需要运行在保护模式关闭的IE7进程下,因此此时会弹出一个新的IE页面来显示淘宝网的内容。

注意此时有2个IE的页面,从上面的图中就可以知道为什么了。因为在IE7当中,一个IE页面对应着一个IExplorer.exe的进程,而一个IExplorer.exe进程中的所有Tab都必须是相同的完整性级别。如果不同完整性级别的Tab出现,那么需要新开IE页面。

这个时候,用Process Explorer来分析一下2个进程:

image

再来看一下IE8的进程模型:

image

(图片引自于IE8 Team Blog)

IE8里面的进程模型有了很大的变化,Smallfrogs的文章里面也介绍了很多,关键就在于IE8里面每个Tab都有一个IExplorer.exe的进程。

同样刚刚的实验放在IE8里面,就会发现,在一个IE8的页面里面可以同时运行百度和淘宝的Tab。

image

这是因为在IE8里面,取消了IEuser.exe这个进程,我猜测这也是IE8的运行速度加快很多的主要原因 。其次就是一个Tab一个进程,使得在IE8下面的所有Tab都可以被装入一个IE页面,而不要再像IE7那样,同样完整性级别的Tab共享一个IExplorer.exe进程。这样,我们平时浏览不同完整性级别的网页的时候,就不需要切换IE的窗口,而只需要切换Tab就可以了。

这个时候,同样用Process Explorer来分析一下2个进程:

image

说了这么多,当然要说一下之所以IE8的进程模型要如此Design的原因,原因在smallfrogs的文章当中早有提出,这里引用一下:

“这种设计的好处就是一个Tab崩溃以后,只会影响这个Tab,对于其他的Tab是不影响的。同时,最外面的框架进程能够知道子Tab的情况,也就能够很好的实现“灾难恢复”了。”

IE8

IE

软件


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134