客户端容器
浏览器架构
-
单进程架构:所有模块运行在同一个进程里,包含网络、插件、JavaScript运行环境等
-
多进程架构:主进程、网络进程、渲染进程、GPU进程、插件进程
-
面向服务架构:将原来的UI、数据库、文件、设备、网络等,作为一个独立的基础服务
架构类型 扩展性 安全性 稳定性 流畅度 单进程架构 低:所有模块运行在同一进程里,访问同一块内存区域,数据没有隔离,新增模块可能会影响原有功能 低:三方插件可直接访问操作系统内任意资源 低:三方插件漏洞等问题可能导致浏览器崩溃 卡顿:所有页面运行在统一进程中,开启多个页面时明显卡顿 多进程架构 中:各进程分配独立的内存区域,有些进程功能较大,耦合度高 高:运行在独立沙箱中,不能访问系统敏感资源 高:进程相互隔离,当一个页面或者插件崩溃时,不会影响其他进程 流畅:每个页面运行在独立的渲染进程中,充分利用系统资源 面向服务架构 高:服务模块划分更细,更内聚,耦合性低,易于扩展 高:运行在独立沙箱中,不能访问系统敏感资源 高:进程相互隔离,当一个页面或者插件崩溃时,不会影响其他进程 流畅:每个页面运行在独立的渲染进程中,充分利用系统资源
渲染进程
-
浏览器内核:Trident、Gecko、Webkit、Blink、Edge、双核
-
多线程架构
- Js引擎、网络、GUI渲染、定时器、事件触发
- 各线程如何配合工作
Chrome运行原理
- 主进程任务
- 渲染进程任务
- 性能优化实践
跨端容器
- webview
- 分类:webview、X5 webview、UI webview、Wk webview
- 应用:原生能力、JSBridge
- 小程序、Rn、WeeX、Lynx、Flutter
- 通用原理
- 横向对比