Chrome架构:仅仅打开一个页面,为什么会有4个进程?

797 阅读1分钟

2007年时,浏览器都是单进程的。单进程浏览器不稳定(插件崩溃)、不流畅、不安全(插件、页面脚本)。

为了解决这几个问题,多进程浏览器出现了。进程之间通过进程间通信机制通信(IPC)。主要有以下几个进程:

1.浏览器进程,主要负责界面显示、用户交互、子进程管理,同时提供存储等功能。

2.网络进程,负责和服务器打交道。

3.渲染进程,负责将html、css、js展示,在沙箱模式中进行。

4.插件进程,在沙箱模式中进行,将插件单独放在一个进程中,是为了保证插件的崩溃不影响其他进程。

5.GPU进程,实现3D CSS效果。

如果打开2个页面,那么会有几个进程呢?

一般情况下是5个进程,1个浏览器进程、1个网络进程、1个GPU进程、2个渲染进程。但是也有特殊情况:

  1. 如果页面里有iframe的话,iframe也会运行在单独的进程中。
  2. 如果页面里有插件,同样插件也需要开启一个单独的进程。
  3. 如果你装了扩展的话,扩展也会占用进程。
  4. 如果2个页面属于同一站点的话,并且从a页面中打开的b页面,那么他们会共用一个渲染进程。