Google Chrome源码剖析【序】
【序(本人什么都没做,完全转载)】
开源是口好东西,它让这个充斥着大量工业垃圾代码和教材玩具代码的行业,多了一些艺术气息和美的潜质。它使得每个人,无论你来自米国纽约还是中国铁岭,都有机会站在巨人的肩膀上,如果不能,至少也可以抱一把大腿。。。
现在我就是来抱大腿的,这条粗腿隶属于 Chrome(开源项目名称其实是Chromium,本来Chrome这个名字就够晦涩了,没想到它的本名还更上一层楼…),Google那充满狼子野心的浏览器。每一个含着金勺子出生的人都免不了被仰慕并被唾骂,Chrome也不例外。关于Chrome的优劣好坏讨论的太多了,基本已经被嚼成甘蔗渣 了,没有人愿意再多张一口了。俗话说,内行看门道外行看热闹,大部分所谓的外行,是通过使用的真实感受来评定优劣的,这无疑是最好的方式。但偏偏还是有自诩的内行,喜欢说内行话办外行事,一看到Chrome用到多进程就说垃圾废物肯定低能。拜托,大家都是搞技术的,你知道多进程的缺点,Google也知道,他们不是政客,除了搞个噱头扯个蛋就一无所知了,人家也是有脸有皮的,写一坨屎一样的开源代码放出来遭世人耻笑难道会很开心?所谓技术的优劣,是不能 一概而论的,同样的技术在不同场合不同环境不同代码实现下,效果是有所不同的。既然Chrome用了很多看上去不是很美的技术,我们是不是也需要了解一下 它为什么要用,怎么用的,然后再开口说话?(恕不邀请,请自行对号入座…)。。。
人说是骡子是马拉出来遛遛,Google已经把 Chrome这匹驴子拉到了世人面前,大家可以随意的遛。我们一直自诩是搞科学的,就是在努力和所谓的艺术家拉开,人搞超女评委的,可以随意塞着屁眼用嘴放屁,楞把李天王说是李天后,你也只能说他是艺术品位独特。你要搞科学就不行,说的不对,轻的叫无知,重的叫学术欺诈,结果一片惨淡。所以,既然代码都有 了,再说话,就只能当点心注点意了,先看,再说。。。
我已经开始遛Chrome这头驴了,确切一点, 是头壮硕的肥驴,项目总大小接近2G。这样的庞然大物要从头到脚每个毛孔的大量一遍,那估计不咽气也要吐血的,咱又不是做Code review,不需要如此拼命。每一个好的开源项目,都像是一个美女,这世界没有十全十美的美女,自然也不会有样样杰出的开源项目。每个美女都有那么一两点让你最心动不已或者倍感神秘的,你会把大部分的注意力都放在上面细细品味,看开源,也是一样。Chrome对我来说,有吸引力的地方在于(排名分先 后…):
1. 它是如何利用多进程(其实也会有多线程一起)做并发的,又是如何解决多进程间的一些问题的,比如进程间通信,进程的开销;
2. 做为一个后来者,它的扩展能力如何,如何去权衡对原有插件的兼容,提供怎么样的一个插件模型;
3. 它的整体框架是怎样,有没有很NB的架构思想;
4. 它如何实现跨平台的UI控件系统;
5. 传说中的V8,为啥那么快。
但Chrome是一个跨平台的浏览器,其Linux和Mac版本正在开发过程中,所以我把所有的眼光都放在了windows版本中,所有的代码剖析都是基于windows版本的。话说,我本是浏览器新手、win api白痴以及并发处理的火星人,为了我的好奇投身到这个溜驴的行业中来,难免有学的不到位看的走眼的时候,各位看官手下超生,有错误请指正,实在看不下去,回家自己牵着遛吧。。。
扯淡实在是个体力活,所以后面我会少扯淡多说问题。。。
关于Chrome的源码下载和环境配置,大家看这里(windows版本),只想强调一点,一定要严格按照说明来配置环境,特别是vs2005的补丁和windows SDK的安装,否则肯定是编译不过的。。。
最后,写这部分唯一不是废话的内容,请记住以下这幅图,这是Chrome最精华的一个缩影,如果你还有空,一定要去这里进行阅读,其中重中之重是这一篇。。。
![]() |
图1 Chrome的线程和进程模型 |
转载于:https://www.cnblogs.com/songtzu/p/3586856.html
Google Chrome源码剖析【序】相关推荐
- Google Chrome源码剖析
http://www.ha97.com/2903.html Google Chrome源码剖析[序] 发表于: Google, Google Chrome, 开源世界, 旧文存档, 编程开发 | 作者 ...
- 学习Google Chrome源码
读<Google Chrome源码剖析>笔记,学习Chrome中优秀的设计思想. 原文地址:http://www.ha97.com/2911.html 零.[序] 1.关于开源 " ...
- Chrome源码剖析、上--多线程模型、进程通信、进程模型
Chrome源码剖析.上 原著:duguguiyu. 整理:July. 时间:二零一一年四月二日. 出处:http://blog.csdn.net/v_JULY_v. 说明:此Chrome源码剖析很大 ...
- Chrome源码剖析 上--多线程模型 进程通信 进程模型
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Chro ...
- CHROME源码剖析 上《转》
转自:http://www.blogjava.net/xiaomage234/archive/2012/02/16/370122.html 原著:duguguiyu. 整理:July. 时间:二零一一 ...
- 【chrome】Chrome源码剖析、上--多线程模型、进程通信、进程模型
Chrome源码剖析.上 原著:duguguiyu. 整理:July. 时间:二零一一年四月二日. 出处:http://blog.csdn.net/v_JULY_v. 说明:此Chrome源码剖析很 ...
- Chrome源码剖析——多线程模型、进程通信、进程模型
说明:本文内容由 v_JULY_v 根据 duguguiyu 的博客整理而成. 前言 1. 之所以整理此文,有两个目的:一是为了供自己学习研究之用:二是为了备份,以作日后反复研究.除此之外,无它. ...
- Chrome 源码剖析
原著:duguguiyu. 整理:July. 时间:二零一一年四月二日. 出处:http://blog.csdn.net/v_JULY_v. 说明:此Chrome源码剖析很大一部分编辑整理自此博客:h ...
- Google Chrome 源码下载地址 (Google Chrome Source Code Download)
1. Google Chrome 源码 SVN 地址:http://src.chromium.org/svn.包含有 Chrome.Gears.Webkit.GCC 等源码以及编译依赖工具.Chrom ...
最新文章
- (已解决)Jupyter Notebook使用argparse报错:An exception has occurred, use %tb to see the full traceback.
- python能够处理的最大整数是多少_python中能输出的最大整数位是多少
- css电子商务管理_从毕业生的角度看电子商务专业
- Junit指定测试执行顺序
- 家里“娘娘”发钱,臣不得不遵命呀
- 开始复习下sql,常用SQL语句示例(一)
- javascript --- 属性描述符
- mysql中常见查询表_MySQL中常见查询
- android如何使用BroadcastReceiver后台实现来电通话记录的监听并存取到sqllite数据库通过Contentprovilder实现接口...
- Pspice 使用指南(中文)
- 智启联云GPS定位平台API开发接口HTTP/MQTT
- 互联网大厂数据分析面试常见问题及解法,建议收藏
- TortoiseHg 学习笔记
- 第112章 Caché 函数大全 $ZPOSITION 函数
- Ins照片墙下载工具:4K Stogram for Mac
- 单片机如何烧录程序?单片机的下载方式讲解
- .netCHARTING报表图表控件详细介绍
- 神经网络U-net性能分析,为什么u-net性能可以这么好
- 关于火绒安装,出现版本过低问题的解决办法
- 基于SSM的网红书购物商城(源码+论文+开题报告+答辩PPT)
热门文章
- java 第几周_java获取第几周
- Order By后产生NULL的问题
- Shell脚本编程之(一)Shell脚本简介
- [Pro]斐波那契数列阿【斐波那契数列】
- AndroMDA 4.x架构(2)
- typescript探索(一)
- 阿里云服务器创建历史功能介绍 快速创建云服务器
- javascript获取窗口位置、绝对位置、事件位置等
- 警告 初始化默认驱动器时出错“找不到运行 Active Directory Web 服务的默认服务器。”...
- 【POJ 1269】判断两直线相交