浏览器是多进程的。浏览器中每打开一个tab页,就相当于新开启一个进程(有时候打开多个tab页后,可以在chrome任务管理器中发现,有些进程被合并了。这是因为浏览器有自己的优化机制)
深入了解。首先,要了解进程与线程;其次,要了解浏览器为什么是多进程;最后,要了解浏览器有哪些进程以及多进程的优势在哪里等。
- 进程是系统内存分配的一小部分内存空间
- 进程之间相互独立(不同进程之间可以相互通信,不过代价很大)
- 进程由单个或多个线程组成
- 多个线程之间是可以相互协作完成工作的
- 同一个进程中各个线程之间共享同一块内存空间
- 大量网页转而使用动态网页
- 渲染引擎在演化的过程中会频繁的出现bug,有些bug会导致渲染引擎崩溃
- 渲染引擎会经常性的在网络上遇到不可信、甚至是恶意的代码,它们会利用这些漏洞在你的电脑上安装恶意的软件
- 如果浏览器中的一个网络应用崩溃的话,这会波及所有被打开的应用在内的任何其他应用。单线程的网络应用不得不经常相互竞争以获得的cpu时间,这有时会导致整个浏览器无法响应
上面我们了解到浏览器为什么是多进程的,那我们下面介绍一下浏览器大概有哪些进程?分别都是做什么的?
- 浏览器主进程(Browser进程)
- 负责浏览器界面操作,如:前进、后退、查看等。
- 负责各个页面的管理,创建或销毁其他进程
- 负责绘制用户界面
- 负责网络资源的管理下载等
- 第三方插件进程:每种插件一个进程,每当插件运行时进程才会创建
- 浏览器渲染进程(浏览器内核,内部是多线程的):负责页面渲染、脚本执行、事件处理等
- GPU进程:最多一个,用于3D绘制等
- 避免单个tab页影响整个浏览器
- 避免插件影响整个浏览器
- 多进程可以高效的利用多核优势
- 方便使用沙盒模型隔离插件等进程,提高浏览器的稳定性