Chrome进程架构,打开一个浏览器有多少进程?
一、2007年之前,浏览器就是单进程的,不稳定、不流畅、不安全
二、早期多进程浏览器(主进程、渲染进程、插件进程)
1、进程之前相互隔离,所以当一个页面或者插件崩溃时,影响到的仅仅是当前的页面进程或者插件进程,并不会影响到浏览器和其他页面
2、采用多进程架构的额外好处是可以使用安全沙箱
3、JavaScript 也是运行在渲染进程中的,所以即使 JavaScript 阻塞了渲染进程,影响到的也只是当前的渲染页面,而并不会影响浏览器和其他页面
三、目前多进程浏览器
架构有:主进程、GPU进程、网络进程、渲染进程、插件进程
主进程负责界面显示、用户交互、子进程管理,同时提供存储等功能;
GPU进程使用初衷是为了实现 3D CSS 的效果,只是随后网页、Chrome 的 UI 界面都选择采用 GPU 来绘制;
渲染进程核心任务是将 HTML、CSS 和 JavaScript 转换为用户可以与之交互的网页,渲染进程都是运行在沙箱模式下,默认情况下,Chrome 会为每个 Tab 标签创建一个渲染进程;
网络进程主要负责页面的网络资源加载;
插件进程主要负责插件的运行
通常我们会遇到单个页面卡死导致浏览器会崩溃是因为对于同源的页面,是共享一个渲染进程,所以当单个页面崩溃的时候,会导致同一站点的页面都崩溃。