客户端容器| 青训营笔记

84 阅读2分钟

浏览器架构

浏览器架构演进

  1. 单进程架构:所有模块运行在同一个进程里包含网络,插件,JavaScript运行环境等
  2. 多架构进程:主进程,网络进程,渲染进程,GPU进程,插件进程
  3. 面向服务架构:将原来的UI,数据库,文件,设备,网络等作为一个独立的基础服务

架构对比

从扩展性,安全性,稳定性,流畅度四个方面进行对比:

  1. 扩展性:
  • 单进程架构:扩展性低,所有模块运行在同一进程内访问同一内存地址,新增模块可能影响原有功能
  • 多进程架构:扩展性中等,虽然各进程分配独立的内存区域但是有些进程功能大,耦合度高
  • 面向服务框架:扩展性高,服务模块划分细致,耦合性低易于扩展
  1. 安全性
  • 单进程架:安全性低,三方插件可以直接访问操作系统里任意资源
  • 多进程架构:安全性高,运行在独立沙盒中,不能访问敏感资源
  • 面向服务框架:安全性高,运行在独立沙盒中,不能访问敏感资源
  1. 确定性
  • 单进程架:稳定性低,三方插件或者某个JavaScript脚本问题可能导致浏览器崩溃
  • 多进程架构:进程相互隔离,个体崩溃时不会影响到其他进程
  • 面向服务框架:进程相互隔离,个体崩溃时不会影响到其他进程

4.流畅度

  • 单进程架:使用卡顿,所有页面运行在同一进程中,开启多个页面明显卡顿
  • 多进程架构:使用流畅,每个页面运行在独立的渲染进程中,充分利用系统资源
  • 面向服务框架:使用流畅,每个页面运行在独立的渲染进程中,充分利用系统资源

渲染进程

常见浏览器内核

IE4-11浏览器:Trident内核,IE8以前使用JScript,之后使用Chakra作为JS引擎 Firefox浏览器:Gecko内核,SpiderMonkey JS引擎 Chrome浏览器:Blink内核,V8 JS引擎 Edge浏览器:Edge内核,Chakra JS引擎