2017-04-07 132 views

回答

0

少崩溃或者至少在一个进程崩溃并不是所有的浏览器崩溃,提高安全性,让事情并行

谷歌浏览器运行充分利用了这些属性并将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应用程序通常必须在单个线程上相互竞争CPU时间,有时会导致整个浏览器无响应。安全也是一个问题,因为利用渲染引擎中的漏洞的网页经常会占用整个计算机。

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

+0

我知道Chromium是Chrome的一个开源项目,它是他们发布的那种细节。会发生什么呢?我认为只写十几个字(现在是二十个字)是懒惰的,并且引用其余的部分,不管你读过什么东西,无论如何也不需要太多时间去做......这实际上是一个建议你改进你的答案。但是,无论如何,这是你的答案。 –

1

Chrome提供了插件,网络应用程序,渲染引擎和其他人从浏览器本身独立的进程。

这样做是为了使这些进程之一失败时,它不会影响整个浏览器甚至整个选项卡,因为它们也是独立的进程。

例如,Firefox没有这个功能,而是在页面中检测到应该导致问题的脚本,并向您显示一个对话框供您停止使用。

总结:

浏览器将这些不同的过程:

  • 浏览器
  • 浏览器(是的,再镀铬本身它已经2个进程)
  • 每个选项卡
  • 每个分机(在最少一个分机)
  • 每个网络应用程序
  • 每个插件
  • 每一个不管,每个人都是一个过程,耶!

这有助于事情可以并行运行,并且这些东西并没有结束崩溃整个浏览器。

相关问题