返回上一页  首页 | cnbeta报时: 05:08:30
[技术分析]再谈IE 8进程模型
发布日期:2009-03-13 12:27:48  稿源:

新闻来源:原创
今天在网上看到了微软公布了一个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的情况,也就能够很好的实现“灾难恢复”了。”
我们在FebBox(https://www.febbox.com/cnbeta) 开通了新的频道,更好阅读体验,更及时更新提醒,欢迎前来阅览和打赏。
查看网友评论   返回完整版观看

返回上一页  首页 | cnbeta报时: 05:08:30

文字版  标准版  电脑端

© 2003-2025