L3 | 青训营笔记

71 阅读2分钟

客户端容器

浏览器架构

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

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

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

    架构类型扩展性安全性稳定性流畅度
    单进程架构低:所有模块运行在同一进程里,访问同一块内存区域,数据没有隔离,新增模块可能会影响原有功能低:三方插件可直接访问操作系统内任意资源低:三方插件漏洞等问题可能导致浏览器崩溃卡顿:所有页面运行在统一进程中,开启多个页面时明显卡顿
    多进程架构中:各进程分配独立的内存区域,有些进程功能较大,耦合度高高:运行在独立沙箱中,不能访问系统敏感资源高:进程相互隔离,当一个页面或者插件崩溃时,不会影响其他进程流畅:每个页面运行在独立的渲染进程中,充分利用系统资源
    面向服务架构高:服务模块划分更细,更内聚,耦合性低,易于扩展高:运行在独立沙箱中,不能访问系统敏感资源高:进程相互隔离,当一个页面或者插件崩溃时,不会影响其他进程流畅:每个页面运行在独立的渲染进程中,充分利用系统资源

渲染进程

  • 浏览器内核:Trident、Gecko、Webkit、Blink、Edge、双核

  • 多线程架构

    • Js引擎、网络、GUI渲染、定时器、事件触发
    • 各线程如何配合工作

Chrome运行原理

  • 主进程任务
  • 渲染进程任务
  • 性能优化实践

跨端容器

  • webview
    • 分类:webview、X5 webview、UI webview、Wk webview
    • 应用:原生能力、JSBridge
  • 小程序、Rn、WeeX、Lynx、Flutter
  • 通用原理
  • 横向对比