Chrome 架构

· 702 words · 4 min

本文中所有的讨论都基于目前使用率最高的 Chrome 浏览器。你可以点击 Chrome 浏览器右上角(选项/更多工具/任务管理器)打开 Chrome 的任务管理器的窗口。

浏览器开启了多进程,通过并行处理能够大大提升性能。

进程(Process)& 线程(Thread)

一个进程就是一个程序的运行实例,用来存放代码、运行中的数据、执行任务的内存,这样的一个环境就叫做进程。每个进程至少有一个线程,线程不能单独存在,由进程来启动和管理。多线程可以并行处理任务,大大提升工作效率。

单线程与多线程

进程和线程的关系如下:

多线程处理过程

单进程浏览器时代

单进程浏览器是指浏览器所有的功能模块都运行在同一个进程里。包括网络、插件、JS 运行环境、渲染引擎和页面等。如此多的功能模块几种在一个进程里,是导致进程不稳定、不流畅、不安全的主要因素。

单进程浏览器

目前浏览器多进程架构

目前多进程包括:一个浏览器主进程、一个 GPU 进程,一个网络进程,多个渲染进程和多个插件进程。

浏览器多进程架构

虽然多进程模型提升了浏览器的稳定性、流畅性和安全性,但是带来了一些问题:

From 极客时间