Chrome 浏览器的多进程架构[Chrome 浏览器内部工作原理(一)]

2023年10月09日星期一


Chrome 的最新架构在顶部是协调与其他处理不同应用程序部分的进程的浏览器进程。对于渲染进程,会创建多个进程并分配给每个标签页。Chrome 在可能的情况下会给每个标签页一个进程;现在它试图给每个网站分配一个自己的进程,

Chrome 浏览器的最新架构

Chrome 浏览器的最新架构

Chrome 浏览器的最新架构图

进程及其控制的内容
浏览器控制 “Chrome” 包括地址栏、书签、返回前进按钮。还可以处理网络浏览器中不可见的特权部分,例如网络请求和文件访问。
渲染程序控制标签页内显示网站的一切内容。
插件控制网站使用的所有插件,例如 Flash。
GPU与其他进程分开处理 GPU 任务。它分为不同的进程,因为 GPU 会处理来自多个应用的请求,并在同一 Surface 上绘制它们。

还有更多像扩展进程和实用进程这样的进程。

Chrome 多进程架构的优缺点

浏览器将工作分离成多个进程的另一个好处是安全和沙箱隔离。由于操作系统提供了一种限制进程权限的方法,浏览器可以将某些进程与某些功能隔离。例如,Chrome 浏览器限制了处理任意用户输入的渲染进程等进程的任意文件访问。
因为进程有自己的私有内存空间,一些公共基础设施(例如 Chrome 的 JavaScript 引擎 V8)会被复制到每个进程的内存中。这意味着它们会占用更多内存,因为它们不能像同一进程内的线程那样共享。为了节省内存,Chrome 对其可以启动的进程数量设置了限制。这个限制取决于设备有多少内存和 CPU 功率,但当 Chrome 达到限制时,它开始在一个进程中运行来自同一站点的多个标签页。