Chrome浏览器多进程架构
进程与线程
进程是一个程序的运行实例。
启动一个程序的时候,操作系统会为这个程序分配内存,用来存放代码、运行中的数据和一个执行任务的主线程,我们把这样一个环境叫做进程。当一个进程关闭之后,程序会回收进程的内存
线程依附于进程,线程由进程启动管理
进程中的任意线程崩溃,都会引起进程崩溃
线程之间可以共享进程的数据,多线程是开启并行运算的基础
传统的单进程架构的缺陷
单进程浏览器架构即所有模块都如网络线程、页面线程(JavaScript运行环境、渲染引擎、标签页、插件)等都运行在单进程里,导致浏览器非常不稳定容易崩溃,而且所有页面的渲染模块、JavaScript执行环境以及插件都是运行在同一个页面线程中的,任一时刻只有其中一个模块能运行。Web视频、Web游戏都是通过插件提供的,任意一个线程的崩溃都会引起浏览器的崩溃
因此,传统浏览器单进程架构最大的缺点就是不稳定、不流畅
Chrome浏览器多进程架构
打开浏览器(默认一个标签页)会有几个进程?
4-5个
-
浏览器进程 Browser Process
主要负责页面显示、用户交互、子进程管理,同时提供存储等功能 -
网络进程 NetWork process
主要负责页面的网络资源加载 -
GPU进程 GPU process graphics processing unit
绘制UI界面,GPU的使用初衷是为了实现3D CSS的效果 -
渲染进程 Render Process即当前标签页进程
转换HTML、CSS、JS为用户可与之交互的网页,排版引擎Blink, JS引擎V8都是运行在该进程中
默认模式下,Chrome会为每个标签页都创建一个渲染进程
处于安全考虑,渲染进程都是运行在沙箱模式下 -
插件进程
可以有多个,取决于浏览器插件数量
多进程架构的优缺点
优点
提高了浏览器的稳定性、流畅性和安全性
缺点
更高的资源占用,各模块之前耦合性高,拓展性差
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!