如果你曾在只开了一个网页的情况下查看 Windows 10 的任务管理器,或许会惊讶地发现其中竟然出现了多个浏览器进程。为了回答这个疑问,微软在近日的一篇博客文章中给出了详尽的解释。其指出,现代浏览器基于多进程体系构建,意味着应用程序可被划分为不同的进程。

(来自:Microsoft Edge Blog)

以 Chromium Edge 为例,该浏览器就被划分成了主进程、渲染器、GPU 运算、实用功能、插件扩展、崩溃报告句柄(Crashpad Handler)等不同的部分。

其中主进程主要负责窗口和选项卡的管理,控制浏览器的地址栏、前进 / 后退按钮等框架、且具有访问实用功能等进程的特权,比如网络请求和文件访问。

渲染器进程通过执行网站提供的代码来控制一个网页在选项卡中的呈现,能够处理超文本标记语言(HTML)、级联样式表(CSS)、JavaScript 和图像等内容。

GPU 运算进程负责与图形硬件相关的所有任务,比如加速图形计算、并将处理器结果输出到显示器上。

实用功能进程负责了音视频播放、网络服务、数据解码、以及集合管理,Microsoft Edge 可借此控制、管理、协调全局系统资源的调用。

插件和扩展进程负责了对各个活动插件的管理(比如 Adobe Flash),每个进程的资源使用情况、以及同主进程 / 渲染器的通讯,均取决于特定的代码。

崩溃句柄处理进程可追踪 Microsoft Edge 中不同进程的运行状况,若发生崩溃,Crashpad Handler 能够捕获异常、并将错误报告传递给微软服务器,以查找问题和修复故障。

此外处于可靠性和安全性的考虑,即便是同一网页上的不同元素,也可能被分配了单独的进程。

这样即便不慎被恶意软件利用了一个渲染器进程中的安全漏洞,也可避免其影响另一个进程。

微软解释称,因渲染器进程负责与网站的交互,恶意攻击者对其觊觎已久。为提升安全性,现代浏览器给它分配了较低的权限,对操作系统的访问也受到了极大的限制。

进程间彼此隔离的另一个好处,就是能够防止对另一个进程的“窜访”,从而提升了浏览器的整体安全性,比如防止被网站广告给获取敏感信息。

此外值得一提的是,若 Web 应用程序、扩展或插件部分发生了崩溃,也只会有小范围受到波及(大部分标签页仍可正常运行),浏览器的整体可靠性却有了大幅提升。

最后,这项特性可让用户更直观地了解到每个进程的资源占用,进而分析出哪个网站、扩展程序、或插件消耗了过多的资源。

感兴趣的朋友,可在 Microsoft Edge 中通过 Shift + Esc 组合键(或在右上角点击“设置 -> 更多 -> 工具”)来唤出浏览器的任务管理器。

相关推荐