一、浏览器包含哪些进程?
- Browser进程:浏览器主进程,只有一个,负责协调、主控。
- 负责浏览器界面显示,与用户交互。如前进,后退等。
- 负责各个页面的管理,创建和销毁其他进程。
- 将Renderer进程得到的内存中的Bitmap,绘制到用户界面上。
- 网络资源的管理,下载等。
- GPU进程
- 用于硬件加速图形绘制
渲染进程
(也就是我们常说的浏览器内核Webkit等):- 内部是多线程的
- 每个页面一个渲染进程互不影响(Chrome中有一些优化,同一域名下的网站可共用一个渲染进程)
- 用于解析页面,渲染页面,执行脚本,处理事件等等
- 第三方插件进程:每种类型的插件对应一个进程,仅当使用该插件时才创建
二、为什么多进程
- 避免单个Tab页或第三方插件奔溃从而影响整个浏览器
- 多进程充分利用多核优势
- 方便使用沙盒模型隔离插件等进程,提高浏览器稳定性
在浏览器中打开一个网页相当于新起了一个进程(进程内有自己的多线程).如果浏览器是单进程,那么某个Tab页或者第三方插件崩溃了,就影响了整个浏览器,体验有多差,而且多进程还有其它的诸多优势,当然,多进程内存等资源消耗也会更大,有点空间换时间的意思。。