以Chrome为例
浏览器多进程架构
-
浏览器进程。
主要负责界面显示、用户交互、子进程管理,同时提供存储等功能。
-
渲染进程。
核心任务是将 HTML 、 CSS 和 JavaScript 转换为用户可以与之交互的网页。排版引擎 Blink 和 JavaScript 引擎 V8 都是运行在该进程中。默认情况下,Chrome 会为每个 Tab 标签页创建一个渲染进程。出于安全考虑,渲染进程都是运行在沙箱模式下。
EventLoop 发生在渲染进程的主线程中
-
GPU进程
其实,Chrome 刚开始发布的时候是没有 GPU 进程的。而 GPU 的使用初衷 是为了实现 3D CSS 的效果,只是随后网页、Chrome 的 UI 界面都选择采用 GPU 来绘 制,这使得 GPU 成为 浏览器普遍的需求。最后,Chrome 在其多进程架构上也引入了 GPU 进程。
-
网络进程
主要负责网页资源加载。
-
插件进程
利:提升了浏览器的稳定性、流畅性和安全性。
弊:更高的资源占用、更复杂的架构体系。
问题
- EventLoop?
- 从输入url到页面显示发生了什么?特别是浏览器的行为