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会为每个标签页都创建一个渲染进程
    处于安全考虑,渲染进程都是运行在沙箱模式下

  • 插件进程
    可以有多个,取决于浏览器插件数量

多进程架构的优缺点

优点
提高了浏览器的稳定性、流畅性和安全性

缺点
更高的资源占用,各模块之前耦合性高,拓展性差

posted @   IslandZzzz  阅读(256)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示