为什么Chrome有这么多的开放进程?

如果您曾经在运行Google Chrome浏览器时查看过任务管理器,可能会惊讶地发现chrome.exe条目的数量大大超过了您已打开的实际Chrome窗口的数量。所有这些流程如何处理?

今天的问答环节由SuperUser提供,这是Stack Exchange的一个分支,Stack Exchange是由社区驱动的Q&A网站分组。

问题

如果您对所有这些看似重复的Chrome流程感到好奇,那么您并不孤单。超级用户读者PolyShell确实想深入了解以下内容:

在Windows Task Manager中,即使我只打开一个Chrome窗口,我似乎也正在运行多个Chrome进程。

这怎么可能?我一直认为每个打开的程序都代表一个过程。

虽然单个chrome.exe进程的数量最初看起来令人困惑,但是对于洪水来说,这是一个很好的解释。

答案

几位SuperUser贡献者积极回答了这个问题。杰夫·阿特伍德(Jeff Atwood)提供了有关Chrome开发博客的参考:

您可以在此处阅读详细信息:

Google Chrome浏览器利用了这些属性,并将Web应用程序和插件与浏览器本身置于不同的进程中。这意味着一个Web应用程序中的渲染引擎崩溃不会影响浏览器或其他Web应用程序。这意味着操作系统可以并行运行网络应用程序以提高响应速度,并且这意味着如果特定的网络应用程序或插件停止响应,浏览器本身将不会锁定。这也意味着我们可以在限制性沙箱中运行渲染引擎进程,以帮助限制发生漏洞利用时的损害。

基本上,每个选项卡都有一个过程,除非这些选项卡来自同一域。渲染器本身具有一个过程。每个插件将有一个,并且每个活动的扩展也将有一个。

KronoS分享了一个技巧,可用来检查Chrome内部的进程,而不是更神秘的任务管理器:

您可以看到哪个进程在执行以下操作:

菜单->工具->任务管理器

看起来像这样:

Deizel为那里的视觉学习者提供了一个助手:

不要忘记阅读涵盖了其他设计决策的Chrome简介漫画。

对于Chrome爱好者来说,整本Chrome漫画都是值得阅读的,因为它解释了浏览器生产中涉及的许多其他设计选择。读起来也很有趣。

有什么要补充的解释吗?在评论中听起来不对劲。是否想从其他精通Stack Exchange的用户那里获得更多答案?在此处查看完整的讨论线程。


$config[zx-auto] not found$config[zx-overlay] not found