本文将带你深入剖析现代浏览器的多进程架构,理解浏览器是如何协作完成页面渲染、脚本执行、网络请求等核心任务的。适合前端开发者提升工程理解力,增强调试、性能优化能力。
🧠 为什么要理解浏览器进程?
在日常开发中我们会遇到很多问题:
- 页面卡顿?脚本阻塞了渲染?
- 同一个页面打开多个 Tab,为什么资源隔离?
- 页面崩了但浏览器没崩,是怎么做到的?
- 为什么 JS 能阻止页面加载,但不能影响别的标签页?
这些问题背后,都与浏览器的多进程架构密切相关。
🧱 浏览器架构的演进:从单进程到多进程
🏗️ 早期架构:单进程浏览器(如 IE 早期)
-
所有模块都运行在一个主进程中
-
缺点:
- 任一页面崩溃,整个浏览器都崩了
- 无法充分利用多核 CPU
🚀 现代架构:多进程架构(Chrome、Edge、Safari、Firefox)
以 Chrome 为代表,采用多进程架构 + 多线程模型
-
启动浏览器时,Chrome 至少包含以下核心进程:
- Browser 进程(主控)
- Renderer 进程(页面渲染)
- GPU 进程
- Netwo