客户端容器 | 青训营笔记

60 阅读2分钟

浏览器架构演进

1.单进程架构:所有模块运行在同一个进程里,包含网络、插件、JavaScript运行环境等

2.多进程架构:主进程、网络进程、渲染进程、GPU进程、插件进程

3.面向服务架构:将原来的UI、数据库、文件、设备、网络等.作为一个独立的基础服务

浏览器架构对比

单进程架构

扩展性:低,所有模块运行在同一进程里访问同一块内存区域,数据没有隔离,新增模块可能会影响原有功能

安全性:低,三方插件可直接访问操作系统里任意资源

稳定性:低,三方插件漏洞或者某个tab页面Javascript脚本问题可能导致浏览器崩溃

流畅度:卡顿,所有页面运行在同一进程中,开启多个页面时明显卡顿

多进程架构

扩展性:中,各进程分配独立的内存区域,有些进程功能较大,耦合度高

安全性:高,运行在独立沙箱中,不能访问系统敏感资源

稳定性:高,进程相互隔离,当一个页面或者插件崩溃时,不会影响其他进程

流畅度:流畅,每个页面运行在独立的渲染进程中,充分利用系统资源

面向服务架构

扩展性:高,服务模块划分更细,更内聚。耦合性低,易于扩展

安全性:高,运行在独立沙箱中,不能访问系统敏感资源

稳定性:高,进程相互隔离,当一个页面或者插件崩溃时,不会影响其他进程

流畅度:流畅,每个页面运行在独立的渲染进程中,充分利用系统资源

浏览器架构-多进程分工

浏览器:主要负责页面展示逻辑,用户交互,子进程管理;包括地址栏.书签、前进、后退、收藏夹等

GPC进程:负责UI绘制,句含整个浏览器全部UI

网络进程:网络服务进程,辅助网络资源加载

标签页(渲染进程):控制tab内的所有内容,将Html、Css和JavaScript转换为用户可交互的网页

插件进程:控制网站运行的插件,比如flash、ModHeader等

插件进程:适用程序Storage/Network/Audio Service 等