谷歌chrome浏览器源码分析

谷歌chrome浏览器源码分析

ID:16553849

大小:71.35 KB

页数:27页

时间:2018-08-22

谷歌chrome浏览器源码分析_第1页
谷歌chrome浏览器源码分析_第2页
谷歌chrome浏览器源码分析_第3页
谷歌chrome浏览器源码分析_第4页
谷歌chrome浏览器源码分析_第5页
资源描述:

《谷歌chrome浏览器源码分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、谷歌chrome浏览器源码分析转自CSDN前言:1、之所以整理此文,有俩个目的:一是为了供自己学习研究之用;二是为了备份,以作日后反复研究。除此之外,无它。2、此文的形式其实是有点俩不像的,既不是个人首创即原创,又非单纯的转载(有加工),无奈之下,权且称作翻译吧。有不妥之处,还望原作者,及读者见谅。文中加入了我自己的一些见解,请自行辨别。顺便再说一句,duguguiyu写的这个Chrome源码剖析,真不错,勾起了偶对源码剖析的莫大兴趣。顺便透露下:在此份Chrome源码剖析之后,互联网上即将,首次出现

2、sgistlv3.3版的源码剖析拉。作者:本人July。是的,本人最近在研究sgistlv3.3版的源码,正在做源码剖析,个人首创,敬请期待。在本文具体针对源码剖析之前,再粗略回答一下网友可能关心的问题:chrome速度维护如此之快?据网上资料显示:有几个主要的关键技术:DNS预解析、Google自主开发的V8Javacript引擎、DOM绑定技术以及多进程架构等等。但这不是本文的重点,所以略过不谈。ok,激动人心的Chrome源码剖析旅程,即刻开始。Chrome源码剖析【序】此序成于08年末,Chr

3、ome刚刚推出之际。duguguiyu:"有的人一看到Chrome用到多进程就说垃圾废物肯定低能。拜托,大家都是搞技术的,你知道多进程的缺点,Google也知道,他们不是政客,除了搞个噱头扯个蛋就一无所知了,人家也是有脸有皮的,写一坨屎一样的开源代码放出来遭世人耻笑难道会很开心?所谓技术的优劣,是不能一概而论的,同样的技术在不同场合不同环境不同代码实现下,效果是有所不同的。."Chrome对我来说,有吸引力的地方在于(排名分先后…):1、它是如何利用多进程(其实也会有多线程一起)做并发的,又是如何解决

4、多进程间的一些问题的,比如进程间通信,进程的开销;2、做为一个后来者,它的扩展能力如何,如何去权衡对原有插件的兼容,提供怎么样的一个插件模型;3、它的整体框架是怎样,有没有很NB的架构思想;4、它如何实现跨平台的UI控件系统;5、传说中的V8,为啥那么快。但Chrome是一个跨平台的浏览器,其Linux和Mac版本正在开发过程中,所以我把所有的眼光都放在了windows版本中,所有的代码剖析都是基于windows版本的。有错误请指正。关于Chrome的源码下载和环境配置,大家可自行查找资料,强调一点,

5、一定要严格按照说明来配置环境,特别是vs2005的补丁和windowsSDK的安装,否则肯定是编译不过的。最后,写这部分唯一不是废话的内容,请记住以下这幅图,这是Chrome最精华的一个缩影:图1Chrome的线程和进程模型Chrome源码剖析【一】--多线程模型【一】Chrome的多线程模型0.Chrome的并发模型如果你仔细看了前面的图,对Chrome的线程和进程框架应该有了个基本的了解。Chrome有一个主进程,称为Browser进程,它是老大,管理Chrome大部分的日常事务;其次,会有很多R

6、enderer进程,它们圈地而治,各管理一组站点的显示和通信(Chrome在宣传中一直宣称一个tab对应一个进程,其实是很不确切的…),它们彼此互不搭理,只和老大说话,由老大负责权衡各方利益。它们和老大说话的渠道,称做IPC(Inter-ProcessCommunication),这是Google搭的一套进程间通信的机制,基本的实现后面自会分解。Chrome的进程模型Google在宣传的时候一直都说,Chrome是onetaboneprocess的模式,其实,这只是为了宣传起来方便如是说而已,基本等同

7、广告,实际疗效,还要从代码中来看。实际上,Chrome支持的进程模型远比宣传丰富,简单的说,Chrome支持以下几种进程模型:1.Process-per-site-instance:就是你打开一个网站,然后从这个网站链开的一系列网站都属于一个进程。这是Chrome的默认模式。2.Process-per-site:同域名范畴的网站放在一个进程,比如www.google.com(由于此文形成于08年,所以无法访问,你懂的)和www.google.com/bookmarks就属于一个域名内(google有自

8、己的判定机制),不论有没有互相打开的关系,都算作是一个进程中。用命令行–process-per-site开启。3.Process-per-tab:这个简单,一个tab一个process,不论各个tab的站点有无联系,就和宣传的那样。用–process-per-tab开启。4.SingleProcess:这个很熟悉了吧,即传统浏览器的模式:没有多进程只有多线程,用–single-process开启。关于各种模式的优缺点,官方有官方的说法,大家自己也会有自己

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。