如果您曾经在运行 Google Chrome 时查看过任务管理器,您可能会惊讶地发现 chrome.exe 条目的数量远远超过了您打开的实际 Chrome 窗口的数量。所有这些过程有什么关系?
为什么要多进程?
现代网站相当复杂——它们有大量的“移动部件”相互交互,以及与用户交互。增加的复杂性意味着对您的计算机的需求也增加了。
您可能已经注意到,即使您只打开了一个选项卡,谷歌浏览器也会经常打开多个进程。发生这种情况是因为谷歌浏览器故意将浏览器、渲染引擎和插件彼此分开,方法是在单独的进程中运行它们。Chrome 的浏览器部分是实际处理进出网站的流量的部分。渲染引擎——正式名称为 Blink——解释网站上运行的代码并显示人性化的版本。插件,如 Java,为浏览器添加了额外的功能。但是为什么要把它们分开呢?
事实证明,将它们分开会带来很多优势,可以大致分为三类。
可靠性
网站很复杂,网站越复杂,出错的方式就越多。如果出现问题,通常会导致崩溃。如果一切都在单个进程中运行,那么一个页面上的崩溃将导致整个浏览器崩溃。在最坏的情况下,您可能会在一个项目上浪费数小时的工作时间。至少,您必须重新启动浏览器并重新打开所有选项卡。
在自己的进程中隔离每个选项卡,甚至是单个网页的某些部分,这意味着一个站点或插件的崩溃不会导致您的整个浏览器崩溃。您可以直接杀死损坏的标签,而不必完全重新启动 Google Chrome。
速度
最初计算机只有一个中央处理器(CPU)和一个核心。这意味着他们一次只能执行一项操作,他们的速度足够快,以至于他们似乎在同时做多项事情。
现代计算机中的处理器与其单核祖父母完全不同。大多数现代 CPU 都有多个内核,这意味着它们能够同时执行许多操作(通常被描述为“并行”),因为它们具有内核。家用电脑和手机的 CPU 通常有 4 到 16 个内核。
将 Google Chrome 的功能拆分为多个进程可以轻松利用更多内核。您可以在多个内核之间拆分进程,而不是让一个 CPU 内核使用 20 个 Chrome 选项卡。
人多力量大; 许多内核使浏览速度更快。
安全
在单独的进程中运行所有内容还可以更轻松地保护您的计算机免受网站上运行的恶意代码的侵害。Chrome 中的每个渲染引擎实例都是沙盒化的,这意味着它大部分与系统的其余部分隔离,甚至与 Chrome 中打开的其他选项卡隔离。来自渲染引擎的所有流量都受到浏览器的密切监控,有助于确保没有任何可疑或恶意行为进入您的系统。
设置并不完美——零日漏洞攻击以从沙盒中跳出来而臭名昭著——但它确实对保护你有很大帮助。
查看正在运行的进程
您可以通过打开谷歌浏览器的任务管理器查看进程的详细信息。在 Chrome 99 中,您可以通过单击右上角的三个点并导航到更多工具 > 任务管理器来访问它。
如果您想进一步了解 Google Chrome 的底层功能,您可以查看 Google 的 Chrome Comic。这是与 Chrome 的多个进程相关的部分。
整本 Chrome 漫画对于 Chrome 粉丝来说是值得一读的,因为它解释了浏览器生产中涉及的许多其他设计选择。
领取专属 10元无门槛券
私享最新 技术干货