您可以捐助,支持我们的公益事业。

金额: 1元 10元 50元

姓名:

邮件:

电话:

公司:

说明:

认证码: 验证码,看不清楚?请点击刷新验证码 必填



  要资料 文章 文库 Lib 视频 Code iProcess 课程 认证 咨询 工具 讲座吧   专家招募  
会员   
 
   
 
  
每天15篇文章
不仅获得谋生技能
更可以追随信仰
 
 
     
   
 订阅
  捐助
主流浏览器多进程架构对比以及检测方法
 
来源:www.iefans.net 发布于: 2016-12-7
来自于要资料   275 次浏览     评价:      
 

为了应对浏览器经常出现崩溃的现象,现在很多浏览器厂商都采用了多进程标签浏览的概念,其中包括主的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打开网站界面

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

谷歌Chrome多进程架构

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

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中的多进程架构

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

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

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

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

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

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

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

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

   
 订阅
  捐助
相关文章

阻碍使用企业架构的原因及克服方法
世界级企业架构的行业挑战
企业架构和SOA架构的角色将融合
什么最适合您的组织?
相关文档

企业架构与ITIL
企业架构框架
Zachman企业架构框架简介
企业架构让SOA落地
相关课程

企业架构设计
软件架构案例分析和最佳实践
嵌入式软件架构设计—高级实践
企业级SOA架构实践

 

相关文章


专家视角看IT与架构
软件架构设计
面向服务体系架构和业务组件
人人网移动开发架构
架构腐化之谜
谈平台即服务PaaS

相关培训课程


面向应用的架构设计实践
单元测试+重构+设计模式
软件架构师—高级实践
软件架构设计方法、案例与实践
嵌入式软件架构设计—高级实践
SOA体系结构实践

相关咨询服务
应用架构设计与构建

成功案例


锐安科技 软件架构设计方法
成都 嵌入式软件架构设计
上海汽车 嵌入式软件架构设计
北京 软件架构设计
上海 软件架构设计案例与实践
北京 架构设计方法案例与实践
深圳 架构设计方法案例与实践
嵌入式软件架构设计—高级实践
更多...   
 
 
实录 多租户架构数据库虚拟化
主讲:梁涛
Oracle研发中心,性能优化架构师
 
实录 模型驱动三维管理
 主讲:俎涛
火龙果软件工程创始人
 
 
 
每天2个文档/视频
扫描微信二维码订阅
订阅技术月刊
获得每月300个技术资源
 
 

关于我们 | 联系我们 | 京ICP备10020922号 京公海网安备110108001071号