靠谱的软件下载站
当前位置:  IEfans/IE专区/IE相关/主流浏览器多进程架构对比以及检测方法

主流浏览器多进程架构对比以及检测方法

IE相关 互联网 2010-04-26 阅读(3581)
  为了应对浏览器经常出现崩溃的现象,现在很多浏览器厂商都采用了多进程标签浏览的概念,其中包括主的IE8、Chrome、 Firefox浏览器,而众多基于WebKit的浏览器在苹果发布WebKit2内核以后已经将可以后采用多进程标签浏览这个功能。因为在在浏览器中添加多进程浏览功能之后,即使是浏览器其中的一个进程出现了崩溃现象,也不会牵连到其他浏览器窗口,从而有效的避免了整个浏览器的假死。微软曾有调查数据显示:70%的浏览器崩溃故障由插件引起。上述浏览器虽然都采用了多进程标签浏览概念,但他们在浏览器中执行多进程标签浏览的方法却是不同的。   1、微软IE8 Loosely-Coupled IE(LCIE)   在最新一代浏览器IE8中,微软添加了被称为“Loosely-Coupled IE(LCIE)”的架构。   通过Loosely-Coupled IE(LCIE)架构,IE8将主要的浏览进程与渲染进程相隔离。   主要的进程处理浏览器、用户界面和框架(窗口),用于存储选项卡。在IE8中,多个选项卡是运行在相同的进程中的,不过不同安全级别的选项卡是相互分开的。ActiveX空间是通过选项卡进程进行处理的。

微软IE8多进程架构

微软IE8多进程架构

微软IE8打开网站界面

微软IE8打开网站界面

  2、谷歌Chrome/Chromium的多进程架构   谷歌Chrome是首款采用多进程浏览概念的浏览器,它还具备最为复杂的用于隔离浏览器各个组成部分的系统。   在Chrome中,谷歌通过out of process plugins(OOPP)功能将所有的插件进程(如Flash、Java、PDF阅读器等)与的浏览器进程隔离,进而提升Chrome浏览器的安全性。也就是说,即使是Chrome中有插件出现崩溃现象,也并不会影响整个浏览器的运行   总得来讲,谷歌Chrome和Chromium中包含以下4中主要的进程类型:   *浏览器进程——用于处理用户界面和管理所有其他的进程,其运行在浏览器的最顶级;   *渲染进程——用于处理独立浏览器标签中的渲染,值得注意的是,一个渲染进程能够处理多个标签;   *插件进程——每个浏览器插件如Adobe Flash或Java都运行在它们自己的独立进程中,这些插件进程能够与各自的渲染进程互通;   *扩展进程——浏览器中的扩展也拥有各自的独立进程,以避免互相干扰。

谷歌Chrome多进程架构

谷歌Chrome多进程架构

  3、Mozilla Electrolysis和Out-of-process插件   相较于谷歌Chrome和微软IE8,Mozilla Firefox是步入多进程行列中较晚的一款浏览器,其中所包含的多进程架构也不如Chrome或IE复杂。   Mozilla基金会在Firefox中添加多进程架构的目的就是隔离浏览器插件浏览器的主要进程,项目代号为“Electrolysis”,正处于早期的测试阶段。   目前,Firefox 3.6.4 beta builds中已经包含了多进程处理能力。

Firefox中的多进程架构

Firefox中的多进程架构

  4、WebKit 2中的多进程   前段时间,WebKit团队宣布,在即将发布的WebKit2中将会包含多进程浏览能力。换句话也就是说,采用WebKit Web渲染引擎的大量浏览器中都将会引进多进程浏览功能。 虽然谷歌Chrome/Chromium使用的是WebKit引擎,不过他们的多进程架构是不同的。在Chrome中,谷歌在每个渲染进程中都包含一个WebKit渲染引擎,而WebKit 小组则计划将WebKit2渲染引擎自身分裂到多个进程中。   在WebKit2采用多进程浏览模型之后,网页的内容(JavaScript,HTML,以及布局等)将各自拥有独立的进程,这一机制是通过两个主要的子系统(CoreIPC和DrawingArea)来支持的。   WebKit2中的多进程浏览模型和Google Chrome的最大不同在于,WebKit直接把独立进程模型放进了一个框架中,因此也能被其他客户端使用。事实上,历史上除了浏览器之外,苹果的邮件客户端和微软的个人信息管理软件都使用过WebKit内核。   WebKit还是其它几个移动浏览器的基础,包括iPhone操作系统、谷歌的 Android、Symbian手机使用的S60 Web浏览器和Palm Pre。

WebKit中的多进程架构

WebKit中的多进程架构

  检查浏览器进程模式的方法 在微软的Visual Studio工具包中就有一个小工具能方便的检测浏览器进程模式,这个工具叫做Spy++, 仅有400K大小,如果你的机器上没有,可以下载:spyxxx.zip,解开后即可运行,如果缺少spyhk55.dll文件,点击这里下载,解压到同一目录即可执行。   Spy+++运行后如下图所示:

运行Visual Studio检测工具

  点击红圈按钮,弹出下面的对话框,用这个对话框可以检查任意窗口的进程线程属性。

检查任意进程线程属性

  下面我们来检测一下Firefox浏览器3.5版本的进程模式,打开Firefox,任意打开两个网页,例如百度,google:

在Firefox中打开百度和google

  把刚才SPY++上的圆形小图标托拽到Firefox的百度网页上,放手,点SPY对话框OK按钮.

拖动工具至打开百度的网页

  SPY++即可显示该网页窗口的属性,点Process页签,就可以看到该网页的进程及线程ID:

网页1的进程及线程ID属性

  在Firefox中将google设为当前页,把刚才SPY++上的圆形小图标托拽到Firefox的google网页上,放手,点OK.

拖动工具至打开google的网页

  SPY++即可显示该网页窗口的属性,点Process页签,就可以看到该网页的进程及线程ID:

网页2的进程及线程ID属性

  可以发现,在Firefox中,百度网页和google网页的进程ID和线程ID是一模一样的,这就很清楚的证明了Firefox3.5是款单进程单线程浏览器。

标签:IE相关浏览器进程对比检测

Copyright © 1998-2017 www.iefans.net All Rights Reserved 湘ICP备13012168号-17