为什么Google Chrome会在打开单个标签时运行多个进程?

时间:2017-04-07 04:12:20

标签: google-chrome windows-7

当存在多个标签时运行多个进程是合乎逻辑的,但在我的Google Chrome中,我只在单个标签下找到了多个进程。我认为这是一些线程卡住,所以我重新启动我的电脑,只打开谷歌浏览器,发现相同的行为。我使用的是Windows 7。

Screenshot

2 个答案:

答案 0 :(得分:1)

Chrome将插件,网络应用,渲染引擎和其他设备作为与浏览器本身不同的进程。

这样做是为了使其中一个进程失败,它不会影响整个浏览器,甚至整个标签,因为它们也是单独的进程。

例如,Firefox没有这个,而是检测到应该导致问题的页面中的脚本,并显示一个对话框,如果你想要停止它。

总结:

Chrome会将这些视为不同的流程:

  • 浏览器
  • 浏览器(是的,再次。Chrome本身已经是2个进程)
  • 每个标签
  • 每个分机(至少每个分机一个
  • 每个网络应用
  • 每个插件
  • 每一个人,每个人都是一个过程, yay!

这有助于事情并行运行,并且这些东西最终不会导致整个浏览器崩溃。

答案 1 :(得分:0)

减少崩溃或至少在进程崩溃时并非所有浏览器崩溃,提高安全性,使事情并行运行

  

Google Chrome利用这些属性,将网络应用和插件放在与浏览器本身不同的进程中。这意味着一个Web应用程序中的呈现引擎崩溃不会影响浏览器或其他Web应用程序。这意味着操作系统可以并行运行Web应用程序以提高其响应速度,这意味着如果特定的Web应用程序或插件停止响应,浏览器本身将无法锁定。这也意味着我们可以在限制性沙箱中运行渲染引擎进程,以便在漏洞发生时帮助限制损坏。在这个世界中,将所有内容放在一个进程中的浏览器面临着健壮性,响应性和安全性的真正挑战。如果一个Web应用程序导致渲染引擎崩溃,它将使用其余的浏览器,包括任何其他打开的Web应用程序。 Web应用程序通常必须在单个线程上相互竞争CPU时间,有时会导致整个浏览器无响应。安全性也是一个问题,因为利用渲染引擎中的漏洞的网页通常可以接管整个计算机。

https://www.howtogeek.com/124218/why-does-chrome-have-so-many-open-processes/

  

除此之外,呈现HTML,JavaScript和CSS的浏览器部分随着时间的推移变得异常复杂。这些渲染引擎在继续发展时经常会出现错误,其中一些错误可能会导致渲染引擎偶尔崩溃。此外,呈现引擎通常会面临来自Web的不受信任的甚至是恶意代码,这些代码可能会尝试利用这些错误在您的计算机上安装恶意软件。在这个世界中,将所有内容放在一个进程中的浏览器面临着健壮性,响应性和安全性的真正挑战。如果一个Web应用程序导致渲染引擎崩溃,它将使用其余的浏览器,包括任何其他打开的Web应用程序。 Web应用程序通常必须在单个线程上相互竞争CPU时间,有时会导致整个浏览器无响应。安全性也是一个问题,因为利用渲染引擎中的漏洞的网页通常可以接管整个计算机。

https://blog.chromium.org/2008/09/multi-process-architecture.html