当前位置: 首页 > Web前端 > HTML5

打开chrome一次打开5个进程?!

时间:2023-04-05 19:41:15 HTML5

打开chrome,一次打开5个进程?!先解释一下为什么有这么多进程,然后再解释为什么要创建这么多进程。那是因为现代浏览器使用多进程浏览器,每个进程处理一个任务。以chrome浏览器为例,打开chrome浏览器至少会产生4个进程,分别是:1.浏览器进程2.网络进程3.GPU进程4.页面进程(一般情况下一个页面一个进程,特殊情况下cases5.插件流程(如果有插件,一个插件一个流程)详细如下图:(如何查看详细流程见下图,上图三个点chrome右上角-->更多工具-->任务管理器)特殊情况下,两个页面会共用一个页面进程:chrome默认每页一个进程,特殊情况:如果从当前页面进入另一个新页面,并且新页面的域名和当前页面的域名相同,那么新页面会共享当前页面的页面流程,如下图:(场景:我从审稿人的名字进入他的个人主页文章的)那么Chrome为什么要创建那么多进程呢?难道之前的单进程架构不好吗?先说一下之前单进程架构的问题:插件不流畅:插件和页面使用同一个进程,插件会阻塞页面的加载。js:js在其他页面的死循环或者页面资源加载缓慢,会导致整个浏览器其他页面加载卡顿或者变慢。不安全插件:插件权限太多,可以读取和修改本地文件,甚至可以修改电脑配置文件(c/c++写的插件可以完全控制你的电脑)。js:js可以通过浏览器的漏洞获取电脑权限,通过牵着浏览器的手修改本地配置。插件不稳定:插件多为第三方编写,水平参差不齐,死机现象屡见不鲜。插件崩溃会直接导致浏览器无响应或崩溃。js:一个页面的js死循环或崩溃,会导致其他页面也卡死或崩溃。所以经过多年的研发,多进程架构在C中登场,基本解决了这些问题:流畅度:插件和页面js只能影响自己的进程,死循环或者资源加载慢只能影响他们自己。(当然现代浏览器特别消耗cpu和内存资源,cpu内存满了还是会卡死,多进程浏览器的缺点)安全沙箱:系统对进程采用沙箱机制,不能写入数据并且只能读取有限的数据,一般是你当前域名下载的文件,会阻断恶意插件和js的后门。稳定性:由于进程间相互隔离,当页面或插件崩溃时,只会影响当前页面和插件本身,完美解决了鼠标拉屎的问题。欢迎交流,有不完善之处欢迎指出