最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 深入了解现代网络浏览器「译文」(一)

    正文概述 掘金(fengqj)   2021-07-16   641

    原文链接 developers.google.com/web/updates…

    CPU、GPU、内存和多进程架构

        本系列一共4篇文章,我们将从高级架构到渲染管道的细节深入了解 Chrome 浏览器。 如果您想知道浏览器如何将您的代码转换为功能性网站,或者您不确定为什么建议使用特定技术来提高性能,那么本系列适合您。作为本系列的第 1 部分,我们将了解核心计算术语和 Chrome 的多进程架构。

    一、计算机的核心 CPU 和 GPU

    为了了解浏览器运行的环境,我们需要了解一些计算机部件以及它们的作用。

    CPU

    CPU 是Central Processing Unit的首字母缩写,即中央处理器。CPU可以被认为是你的电脑的大脑,下图为一个办公室工作者,可以一一处理许多不同的任务,它可以处理从数学到艺术的所有事情,同时知道如何回复客户电话。过去大多数 CPU 都是单芯片,一个内核就像是同一个芯片中的另一个 CPU;在现代硬件中,会有多个内核,为您的手机和笔记本电脑提供更多的计算能力。

    深入了解现代网络浏览器「译文」(一) 14CPU内核作为办公室工作人员坐在每个办公桌前处理他们进来的任务\color{green} {图1:4个CPU 内核作为办公室工作人员坐在每个办公桌前处理他们进来的任务} 图1:4个CPU内核作为办公室工作人员坐在每个办公桌前处理他们进来的任务

    GPU

    GPU 是Graphics Processing Unit的首字母缩写,即图形处理单元。GPU计算机的另一部分,GPU 擅长处理简单的任务,并且同时跨多个内核。顾名思义,它最初是为处理图形而开发的,因为它的渲染快速和交互流畅。最近几年,通过 GPU 加速计算,越来越多的计算可以单独使用 GPU。

    深入了解现代网络浏览器「译文」(一) 2:许多带有扳手的GPU内核在处理一个有限的任务\color{green} {图2:许多带有扳手的 GPU 内核在处理一个有限的任务} 图2:许多带有扳手的GPU内核在处理一个有限的任务

    当您在计算机或手机上启动应用程序,应用程序会使用操作系统提供的机制在 CPU 和 GPU 上运行。

    深入了解现代网络浏览器「译文」(一) 3:三层计算机体系结构。底部是机器硬件,中间是操作系统,顶部是应用程序。\color{green} {图3:三层计算机体系结构。 底部是机器硬件,中间是操作系统,顶部是应用程序。} 图3:三层计算机体系结构。底部是机器硬件,中间是操作系统,顶部是应用程序。

    二、在进程和线程上执行程序

    在深入研究浏览器架构之前要掌握的另一个概念是进程和线程,进程可以被描述为应用程序的执行程序,线程是存在于进程内部,并执行其进程程序的任何部分。

    当您启动应用程序时,就会创建一个进程。 程序可能会创建线程来帮助它工作。操作系统为进程提供了一块“内存块”以供使用,并且所有应用程序状态都保存在该私有内存空间中。当您关闭应用程序时,该进程也会消失,操作系统会释放内存。

    深入了解现代网络浏览器「译文」(一) 4:进程作为边界框,线程作为在进程内游动的抽象鱼\color{green} {图4:进程作为边界框,线程作为在进程内游动的抽象鱼} 图4:进程作为边界框,线程作为在进程内游动的抽象鱼

    一个进程可以要求操作系统启动另一个进程来运行不同的任务。 发生这种情况时,会为新进程分配内存的不同部分。 如果两个进程需要通信,它们可以使用进程间通信 (IPC) 来实现。 许多应用程序都设计为以这种方式工作,因此如果工作进程没有响应,它可以重新启动,而无需停止运行应用程序不同部分的其他进程。

    浏览器架构

    那么如何使用进程和线程构建 Web 浏览器呢? 嗯,它可能是一个进程有许多不同的线程,也可能是许多不同的进程有几个线程通过 IPC 进行通信。

    深入了解现代网络浏览器「译文」(一) 5:进程/线程图中的不同浏览器架构\color{green} {图5:进程/线程图中的不同浏览器架构} 图5:进程/线程图中的不同浏览器架构

    这里需要注意的重要一点是,这些不同的架构是实现细节。 没有关于如何构建 Web 浏览器的标准规范。 一种浏览器的方法可能与另一种完全不同。

    在本系列4篇文章中,我们将使用下图中描述的 Chrome 最新架构。顶部是浏览器进程与其他处理应用程序不同部分的进程协调。 对于渲染器进程,会创建多个进程并将其分配给每个选项卡。直到最近,Chrome 还在可能的情况下为每个选项卡提供了一个进程; 现在它尝试为每个站点提供自己的进程,包括 iframe(请参阅站点隔离)。

    深入了解现代网络浏览器「译文」(一) 6:多个层显示在渲染器进程下,代表Chrome为每个选项卡运行多个渲染器进程。\color{green} {图6:多个层显示在渲染器进程下,代表 Chrome 为每个选项卡运行多个渲染器进程。} 图6:多个层显示在渲染器进程下,代表Chrome为每个选项卡运行多个渲染器进程。

    哪个进程控制什么?

    下面的表格描述了每个 Chrome 进程及其控制的内容:

    进程及其控制的内容
    浏览器控制应用程序的“chrome”部分,包括地址栏、书签、后退和前进按钮。还处理 Web 浏览器的不可见的特权部分,例如网络请求和文件访问。渲染器控制显示网站的选项卡内的任何内容。插件控制网站使用的任何插件,例如 flash。GPU独立于其他进程处理 GPU 任务。 它被分成不同的进程,因为 GPU 处理来自多个应用程序的请求并将它们绘制在同一个表面上。

    深入了解现代网络浏览器「译文」(一) 7:不同的进程指向浏览器UI的不同部分。\color{green} {图7:不同的进程指向浏览器 UI 的不同部分。} 图7:不同的进程指向浏览器UI的不同部分。

    还有更多的进程,如扩展进程和实用程序进程。 如果您想查看 Chrome 中正在运行的进程数,请单击右上角的选项菜单图标(三个点),选择更多工具,然后选择任务管理器。 将会打开一个窗口,其中包含当前正在运行的进程列表以及它们使用的 CPU/内存量。

    Chrome 中多进程架构的好处

    之前,我提到 Chrome 使用多个渲染器进程。 在最简单的情况下,您可以想象每个选项卡都有自己的渲染器进程。 假设您打开了 3 个选项卡,每个选项卡都由一个独立的渲染器进程运行。 如果一个选项卡变得无响应,那么您可以关闭无响应的选项卡并继续保持其他选项卡的活动。如果所有选项卡都在一个进程上运行,当一个选项卡变得无响应时,所有选项卡都无响应。 这很糟糕。

    将浏览器的工作分成多个进程的另一个好处是安全性和沙盒。 由于操作系统提供了一种限制进程权限的方法,因此浏览器可以从某些功能中对某些进程进行沙箱处理。例如,Chrome 浏览器为了处理任意用户输入的进程(如渲染器进程),限制任意文件访问。

    因为进程有自己的私有内存空间,所以它们通常包含公共基础设施的副本(比如 V8,它是 Chrome 的 JavaScript 引擎)。 这意味着更多的内存使用量,虽然它们是同一进程内的线程,却无法共享它们。为了节省内存,Chrome 限制了它可以启动的进程数。 该限制取决于您设备的内存和 CPU 能力,但当 Chrome 达到限制时,它会开始在一个进程中运行来自同一站点的多个选项卡。

    节省更多内存 - Chrome 中的服务化

    同样的方法应用于浏览器进程。 Chrome 正在经历架构变化,以将浏览器程序的每个部分作为一项服务运行,从而可以轻松地拆分为不同的进程或聚合为一个进程。

    一般的想法是,当 Chrome 在强大的硬件上运行时,它可能会将每个服务拆分为不同的进程以提供更高的稳定性,但如果它在资源受限的设备上,Chrome 会将服务合并到一个进程中以节省内存占用。 在此更改之前,已在 Android 等平台上使用了类似的方法来合并进程以减少内存使用量。

    8Chrome服务化将不同服务移入多个进程和单个浏览器进程的示意图。\color{green} {图8:Chrome 服务化将不同服务移入多个进程和单个浏览器进程的示意图。} 图8:Chrome服务化将不同服务移入多个进程和单个浏览器进程的示意图。 深入了解现代网络浏览器「译文」(一)

    深入了解现代网络浏览器「译文」(一)

    起源地下载网 » 深入了解现代网络浏览器「译文」(一)

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元