1. 首页
  2. 工具类

微软解析新Edge浏览器的多进程体系结构

今天的浏览器更像是操作系统,而不是文档查看器。用户在浏览器中执行的任务越来越多,而在桌面应用程序中执行的任务越来越少。然而,每个网页、Web应用和扩展都会使用内存。因此,用户经常会关心内存使用情况如何影响他们的体验。

我们正在努力开发解决方案,以解决这一问题。这些解决方案包括为网站和扩展开发者提供信息,帮助他们使用更少的资源,并帮助用户了解他们的浏览习惯如何影响Microsoft Edge的资源使用。

我们将在未来几个月内分享更多关于Microsoft Edge的内存使用情况,从今天的文章开始深入探讨Microsoft Edge的多进程架构。我们希望这能让您深入了解Microsoft Edge如何使用您的计算机资源,浏览习惯如何影响资源使用,以及您如何帮助我们让Microsoft Edge变得更好。

多进程体系结构如何帮助提高浏览器的安全性和可靠性

许多浏览器是使用多进程体系结构构建的,这意味着浏览器被划分为不同的进程。

**浏览器进程(Browser process):**这是主要的进程,它帮助管理窗口和标签,并控制浏览器框架,如地址栏和前进和后退按钮。它还可以对网络请求和文件访问等实用程序的特权访问进行路由。

**渲染进程(Renderer processes):**这些控件通过执行网站提供的代码来控制网站如何在标签页中渲染。它们处理HTML、CSS、JavaScript、图像等。每个渲染器进程的资源使用情况都取决于所托管的内容。

**GPU进程(GPU process):**该进程负责与GPU(图形处理单元)进行通信并处理所有GPU任务。GPU是一种硬件,可以快速执行与图形相关的计算,并将输出发送到显示器以进行显示,现代浏览器使用GPU来快速渲染网页。

**实用程序进程(Utility processes):**音频播放、网络服务、视频采集、数据解码、收藏管理器都由这些进程来处理,这样Microsoft Edge就可以控制和审核这些资源的访问,协调全局系统资源的使用。

**插件进行和扩展程序进程(Plug-in processes and extension processes):**插件进程包含活动插件,例如Adobe Flash,而扩展进程包含活动扩展。每个进程执行由插件或扩展提供的代码,每个进程的资源使用情况根据所提供的代码而不同。每个进程也有允许插件或扩展与浏览器和渲染器进程通信的代码。

**Crashpad处理程序进程(Crashpad handler process):**这可以跟踪Microsoft Edge中不同进程的健康状况。如果Microsoft Edge崩溃,这个过程将帮助浏览器捕获并将崩溃报告传输到微软服务器,我们使用这些崩溃报告来寻找和修复崩溃。

现在我们已经介绍了每个进程的作用,让我们来看看一个进程的例子,它将为一个打开了一个标签页并在Microsoft Edge中打开了两个扩展的用户运行。

浏览器实例,其中一个选项卡已打开,两个扩展已打开

如果用户打开Windows任务管理器,则将显示进程:

微软解析新Edge浏览器的多进程体系结构

在此示例中,用户将看到九个进程正在运行:

  • 浏览器框架的浏览器进程
  • 一个帮助显示图形的GPU进程
  • 一个正在运行示例网站提供的代码的渲染器进程
  • 网络服务实用程序进程,帮助处理网络请求
  • 音频服务实用程序进程,可帮助播放音频
  • 运行Flash提供的代码的插件进程
  • 两个扩展进程,每个扩展进程一个,运行扩展提供的代码
  • 一个监控Microsoft Edge健康状况的crashpad处理程序

所有这些过程一起写作,给你今天使用的浏览体验。

现在让我们来看另一个例子。在下一个示例中,用户打开了四个选项卡,并启用了两个扩展(图2)。每个标签都有一个广告(两个来自一个来源,两个来自另一个来源)。

浏览器实例打开了四个选项卡,并且打开了两个扩展

在此示例中,如果用户打开任务管理器,他们将看到14个进程正在运行:

  • 浏览器框架的浏览器进程
  • 一个帮助显示图形的GPU进程
  • 六个渲染器进程:
    • 四个标签页的渲染器进程,每个标签页都有自己的渲染器进程,并运行网站提供的代码。有时,来自同一域的选项卡将共享一个进程。
    • 两个广告的渲染器进程。来自同一域名的广告将共享一个进程,并将运行广告提供的代码。在本例中,第一个来源的两个广告将共享一个进程,第二个来源的两个广告将共享一个单独的进程。这些广告使用称为子帧的东西嵌入网页中。 (稍后我们将详细讨论子帧。)
  • 网络服务实用程序进程,帮助处理网络请求
  • 音频服务实用程序进程,可帮助播放音频
  • 一个正在运行Flash的插件进程
  • 两个扩展进程,每个扩展进程一个,运行扩展提供的代码
  • 一个监控Microsoft Edge健康状况的crashpad处理程序

一些例子更加复杂。您可能会看到对您不可见的子框架的其他进程,或者您可能会看到项目(如service workers人员或web workers)与选项卡或子框架共享进程。service workers和web workers是在后台运行的脚本,以提高性能,并允许您在没有互联网连接的情况下使用一些网站和应用程序。

Chromium’s多进程架构:https://www.chromium.org/developers/design-documents/multi-process-architecture

多进程架构的好处

每个进程都有不同的目的,影响进程总数的因素很多。那么,Microsoft Edge为什么要使用这种多进程架构呢?

与其他现代浏览器一样,Microsoft Edge使用这种架构来提高安全性、可靠性和对浏览器如何使用资源的可问责性。Microsoft Edge基于Chromium项目构建,并与其他Chromium浏览器共享一个通用实现。

增强的安全性

如果恶意软件利用了一个渲染器进程中的安全漏洞,则很难逃脱该进程并影响另一个进程。

渲染器进程是最有可能受到攻击的进程,因为它是与网站交互的进程。该进程的特权较低,并且对操作系统的访问受到极大限制,因此,如果恶意软件控制该进程,则它将无法控制该计算机。渲染器进程和浏览器进程之间的通信范围狭窄且受到保护,恶意软件很难利用此优势来利用浏览器进程。

另外,进程隔离可以防止一个进程访问另一个进程的内存,这也提高了浏览器的安全性。举例来说,假设您正在网上购买衬衫,并且该网站上有一个广告。您所访问的网站需要访问您的信用卡信息才能完成交易;但是,广告不需要访问此信息。广告将按照自己的流程进行处理,因此即使广告遭到入侵,也无法轻松访问您的敏感信息。

可靠性

如果网页、Web应用、扩展程序或插件发生崩溃,只有正在崩溃的进程才会受到影响,提高浏览器的可靠性。浏览器的其余部分,包括大多数其他选项卡,将保持稳定。

资源问责制

隔离每个进程,可以更容易地在任务管理器中看到哪个进程使用了最多的资源,并提供有关哪些资源使用的信息。Microsoft Edge使用最多的资源,还是网站,扩展程序或插件?您还可以在Microsoft Edge的内部任务管理器中看到这些信息,您可以在Microsoft Edge中按Shift+Esc键打开,或者进入浏览器的上角,选择设置和更多(…)>更多工具>浏览器任务管理器

倾听您的反馈

我们认识到,人们比以往任何时候都更加依赖他们的浏览器,我们希望浏览网页时能够毫不费力。如果您遇到Microsoft Edge问题,请向我们发送尽可能详细的反馈。请包括重现问题的步骤、您访问的页面的URL、诊断数据、截图和您的电子邮件地址等信息,以便我们通过电子邮件向您提供更多信息。这将有助于我们处理您的反馈。

请继续关注即将发布的博客文章,我们将在其中学习计算机如何管理内存。

Microsoft Edge隐私白皮书:https://docs.microsoft.com/en-us/microsoft-edge/privacy-whitepaper

– Microsoft Edge程序经理Allison Pastewka


原文:blogs.windows.com/msedgedev

作者:杭州程序员张张
链接:https://juejin.im/post/6884943526539296776

看完两件小事

如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:

  1. 关注我们的 GitHub 博客,让我们成为长期关系
  2. 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
  3. 关注公众号 「IT平头哥联盟」,公众号后台回复「资源」 免费领取我精心整理的前端进阶资源教程

JS中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容。欢迎热爱技术的你一起加入交流与学习,JS中文网的使命是帮助开发者用代码改变世界

本文著作权归作者所有,如若转载,请注明出处

转载请注明:文章转载自「 Js中文网 · 前端进阶资源教程 」https://www.javascriptc.com

标题:微软解析新Edge浏览器的多进程体系结构

链接:https://www.javascriptc.com/4706.html

« Chocolate 同学秋招前端の大厂面经&心路历程2020
LeetCode 053. 最大子序和»
Flutter 中文教程资源

相关推荐

QR code