0. 引言
Chrome作为如今最受欢迎的浏览器之一,其开源内核Chromium从诞生之日起就得到了广泛关注,目前市面上很多浏览器都是基于Chromium内核的,其性能很大程度上基于Chromium的优秀品质。那么,Chromium究竟是一个怎样的框架呢?它又有哪些优秀特性呢?作为一个浏览器新手,我希望能通过自己一段时间的学习,对这些问题有一个初步的理解,同时将自己的学习心得分享给大家。
1. Chromium框架总览
首先,Chromium是一个
多进程框架。不少人一看到多进程,就会觉得效率低,因为进程的创建和销毁、进程间的通信,远比单进程中的多线程消耗更多。可事实并不是想象的那么简单,衡量一个应用程序的好坏,往往在于用户的真实体验,Chromium内核这么受欢迎,说明多进程自然有多进程的好,同时也说明Chromium的多进程框架的确有其独到之处(当然,大牛们说Chromium更为出彩的地方还是在多线程的并发管理,下一篇就会研究这里)。闲话不多说,先把这张经典的图放上来。
在上面这幅图中我们可以看到两类进程:第一类,Browser进程,它管理tabs和插件进程以及运行主界面UI;第二类,Renderer进程,它利用WebKit布局引擎来解释和布局HTML。其实还有另一类进程,Plugin,顾名思义,其与浏览器插件对应。Browser是Chromium的主进程,是老大,只有一个;
Render进程和Plugin进程都与老大保持进程间的通信,某些Render进程与Plugin进程之间也有彼此联系的通路,而是多个Render进程之间或者多个Plugin进程之间,是没有直接通信的途径的