不少小伙伴在电脑应用的时候都会发现:通常自己只打开一个网页浏览,但是有的时候却感觉电脑运行不顺畅,打开资源管理器一看,处理器占用率不低,甚至会出现多个网页的线程……对于这个现象多年来也没人给一个合理的解释,不过最近微软终于主动现身解开了这个谜题。
很多人遇到这种情况,都会以为自己中了病毒,实际上并非如此。最近微软官方在一篇技术文章中,说明了其实这是现代浏览器采用了多线程的架构所建构。简单而言,当你运行一个浏览器的时候,这个浏览器其实并非是单进程软件,而是采用了多进程的架构,浏览器在运行的时候,会调动不同的资源,但是在任务管理器的后台上,都会显示为浏览器的图标,这就是浏览器为什么运行后会有多个后台进程的真正原因。
微软详细解释了自家Edge浏览器的多进程架构,同样的原理也适用于目前世界第一大浏览器谷歌的Chrome浏览器上。微软表示,浏览器采用多进程架构,浏览器在工作时主要被分为几个不同的行程。
首先是浏览,这是主要的进程,负责视窗窗口和选项管理,控制浏览器的地址栏、前进/ 后退按钮等框架、且要处理网络请求和档案存取。
其次是计算,通过执行网站提供的程式码,来控制一个网页的呈现,能够处理超文字标记语言(HTML)、级联样式表(CSS)、JavaScript 和图像等内容。
然后是GPU硬件加速的计算,这部分负责与图形硬体相关的所有任务,比如加速图形运算、并将处理器结果输出到显示器上。此外还有实用功能的进程,这部分负责了影片播放、网络服务、资料解码、以及集合管理,微软和谷歌的浏览器可借此控制、管理、协调系统资源。
此外进程中还有附加程式,这部分负责了对各个附加程式的管理,每个进程的资源使用情况、以及同主进程/计算进程的沟通。最后还有崩溃处理的进程,如果浏览器发生崩溃,Crashpad Handler 能够捕获异常、并将错误报告传递,以查找问题和修复故障。
必须要说的是,出于可靠性和安全性的考虑,即便是同一网页上的不同元素,也可能被分配了单独的进程。这样,即使是不慎被恶意软体利用了一个计算进程中的安全漏洞,也可避免其影响另一个行程。
所以综合来讲,浏览器虽然只是单独的一个软件,但要正常使用浏览器,那么就需要电脑分配多个进程给它,甚至有的时候在一些复杂的网页上,电脑的计算要耗费不少的性能,所以还会导致浏览器的占用率比较高,比如说一些可播放视频的网站。这也是为什么我们在后台看到一个浏览器会有这么多进程的原因。
从好处上来看,多进程的浏览器提升了整体的安全性,防止了不同功能在同一个进程中的串访,而且即使出现了一些故障,比如说网页崩溃,也只会影响其中一个进程,对浏览器的稳定性也有很大的重要。
通过这个释疑,以后大家打开浏览器如果再看到这么多的后台进程,大家也就不用担心了,这是浏览器努力为大家服务的表现,而且在大多数时候后台进程虽多,但是处理器资源占用并不高,除非你玩什么网页游戏或者通过网页观看视频!