前端 客户端容器 | 青训营笔记

79 阅读3分钟

这是我参与【第六届青训营】伴读笔记创作活动的第5天

浏览器架构的演变过程:

单进程架构;

指浏览器只有一个进程,负责处理所有浏览器的功能,包括用户界面、JavaScript 执行、渲染、网络请求等。相对于现代浏览器的多进程架构来说,单进程架构更易于实现和维护,在内存和 CPU 资源消耗方面也相对较低。但是,由于只有一个进程,所以在执行某些复杂任务时,可能会阻塞整个浏览器,导致用户体验不佳。

多进程架构;

现代浏览器的多进程架构指浏览器启动时,会为不同的功能和页面分别创建多个进程,这些进程相互之间相互独立、互不干扰,各自承担不同的任务。

优点:

  1. 稳定性高:每个进程之间互相独立,一个进程崩溃不会影响到其他进程。
  2. 安全性高:每个进程之间互相独立,网页之间隔离,可以防止恶意网站访问本地资源和窃取用户信息。
  3. 性能提高:多进程架构能够有效地利用多核 CPU,同时能够将任务分配到不同的进程中执行,避免一个任务阻塞整个浏览器。

面向服务架构;

面向服务架构指将浏览器内部的功能模块抽象成独立的服务,通过网络通讯进行交互。每个服务都有自己的接口,其他服务可以通过接口调用它提供的功能。这种架构可以使得服务之间更加松耦合,能够灵活地组织和扩展系统,进而提高系统的可维护性和可扩展性。

屏幕截图 2023-04-22 230613.png

多进程架构都有哪些进程:

  1. 浏览器主进程:负责协调管理其他进程,例如创建和销毁子进程、处理用户输入、维护浏览器界面等任务。
  2. 渲染进程:负责处理一个标签页中的 HTML、CSS 和 JavaScript 等内容,将网页渲染成可视化的图像。
  3. GPU 进程:提供 3D 绘图能力,渲染视频,执行 CSS 动画等任务。
  4. 网络进程:负责处理浏览器发起的网络请求。
  5. 插件进程:负责运行浏览器插件,例如 Flash、Java 等。

其中,渲染进程的影响因素主要有:

  1. 占用更多的资源:每个渲染进程都包含多个线程,这意味着会消耗更多的内存资源。
  2. 线程数量:渲染进程中包含多个线程,线程数量的多少会直接影响到渲染进程的性能与资源消耗。 每个步骤都可能影响渲染进程的性能。具体包括:
  3. HTML 内容的转换:将 HTML 内容转换为能够读懂的 DOM 树结构。
  4. CSS 样式表的转换:将 CSS 样式表转化为浏览器可以理解的 styleSheets,计算出 DOM 节点的样式。
  5. 布局树的创建:创建布局树,并计算元素的布局信息。
  6. 分层树的生成:对布局树进行分层,并生成分层树。
  7. 绘制列表的生成:为每个图层生成绘制列表,并将其提交到合成线程。

常见的浏览器内核:

image.png