[TOC]
浏览器多进程架构简介
多进程架构 好处:1. 一个页面崩溃了,不会影响到页面(其他域)。2. 进程间分工明确,有不同权限,会更安全高效
缺点:不同的进程间,内存不共享。所以不同进程的内存常常需要包含相同的内容
另:iframe也会有独立渲染进程
顶层存在一个Browser process,能协调其他进程
- Browser Process:(资源的加载 此进程处理)
- 又细分了3个线程
- UI thread : 控制浏览器上的按钮及输入框;
- network thread: 处理网络请求,从网上获取数据;
- 如果响应的内容文件是html,下一步把这些数据传递给renderer process。如果是zip或其他,则传输给下载管理器
- 又细分了3个线程
3. storage thread: 控制文件等的访问;
- 负责包括地址栏,书签栏,前进后退按钮等部分的工作;
- 负责处理浏览器的一些不可见的底层操作,比如网络请求和文件访问;
- Renderer Process:(资源的解析,执行,渲染 此进程处理)
负责一个 tab 内关于网页呈现的所有事情
线程:- 主线程 Main thread
- 工作线程 Worker thread
- 排版线程 Compositor thread
- 合成帧
- 光栅线程 Raster thread
- Plugin Process:
负责控制一个网页用到的所有插件,如 flash - GPU Process
负责处理 GPU 相关的任务
个人结论
资源的加载(含dns查找 TSL协商 tcp握手)
和 资源的解析执行
是2个不同的进程处理的,所以可以并行
整理参考:https://zhuanlan.zhihu.com/p/47407398
性能优化合集快速入口: