这是我参与「第四届青训营 」笔记创作活动的第5天
web浏览器架构
概念
Web浏览器的架构,可以实现为一个进程包含多个线程,也可以实现为很多进程包含少数线程通过IPC通信。
Chrome最新的架构:最上层是浏览器进程,负责协调承担各项工作的其他进程,比如实用程序进程、渲染器进程、GPU进程、插件进程等。
- 浏览器进程:控制浏览器的主框架部分,包括地址栏,前进,后退按钮等。也可以发送网络请求或者访问文件
- 渲染器进程:主要是负责显示网页,以及处理事件。
- 插件进程:主要是控制网站的所有插件
- GPU进程:在独立的进程中处理GPU任务。之所以要放到独立的进程当中,是因为GPU要处理多个应用的请求,并在同一个界面上显示图形。
更多的进程可以根据浏览器中的任务管理器查询:
多进程架构的好处
进程和线程的理解
- 启动一个程序的时候,操作系统会为该程序创建一块内存,用来存放代码、运行中的数据和一个执行任务的主线程,我们把这样的一个运行环境叫进程。就是说一个进程就是就是一个程序的运行实例。
- 线程是依附在进程上的,进程上可以有多个线程并行处理。线程通过进程来启动与管理。
单进程架构与多进程架构
理解完进程和线程之后,就来聊聊单进程架构和多进程架构的区别
-
单进程架构是浏览器的所有功能模块都放在同一个进程里,包括网络,插件,渲染等。多进程架构是如将渲染放在渲染器进程,插件放在插件进程,进程之间运用IPC进行通信(如图)。
-
多进程解决了单进程架构在同一时间段只能有一个模块进行的问题,比单进程更加流畅
-
多进程通过进程是相互隔离的特点,解决了单进程可能因为一个功能崩溃而整个浏览器崩溃的问题,多进程更加稳定
-
多进程可以使用安全沙箱,即给操作系统的进程加了一把锁,使得网页更加的安全。