Open lewenweijia opened 4 years ago
现代多进程浏览器架构?:
1. 浏览器主进程
2. 网络进程(从早期的浏览器进程中独立出来)
3. GPU进程(从早期的大型单体浏览器主进程独立出来)
4. withSandbox(渲染进程)(s)
5. 插件进程(s)
一个页面? <==> 一个渲染进程
职责?:
1. 浏览器主进程: 界面显示(拿渲染进程的合成图片结果的啊), 用户交互, 子进程管理, 提供存储功能
2. 渲染进程(页面): v8线程 + blink排版线程 <--- 浏览器主进程为这个子渲染进程投喂以html/css/js的啊
然后的然后就产生可以交互和查看的有意义界面的哦
3. GPU进程?: 一开始是为了3d css效果引入GPU的, 后来Chrome的UI也采用了GPU进行渲染, GPU独立
成进程成了刚需
4. 网络进程?: 由浏览器主进程管理调度进行为页面(渲染进程)的消费材料进行远程获取的啊
5. 插件进程? up 稳定性, 用进程进行隔离, 以保证插件的奔溃不会对页面(渲染进程)和浏览器主进程
造成影响的啊
多进程架构带来的好处?:
1. 稳定性, (页面奔溃 -(x)-> 整个浏览器进程的奔溃的啊)
2. 流畅性(一个渲染进程[页面]的卡死(例如js死循环)不影响其他
3. 安全性 ==> withSandbox(渲染进程)
多进程架构带来的代价?:
1. 更多的资源, 维护进程的代价, 多个渲染进程/插件进程之间都有共同的基础结构的副本
2. 更复杂的架构体系 ---> 现代浏览器架构耦合性高 扩展性差
未来的浏览器架构瞻望?:
2016年 -> Chrome团队引入SOA思想(service-oriented architecture)
原来的模块都被分割成独立的服务(service), 都在独立进程, 访问服务必须使用
一开始定义好的接口, 服务与服务之间通过IPC进行通信
资源不足的机器? -> 将某些服务合并到主进程里面的啊
Chrome试图应用到更多的业务场景? -> 移动设备, VR, 为了支持这些场景?
Chrome的架构体系越来越复杂, Chrome最终选择了SOA <-- 现阶段Chrome团队的一个主要任务
SOA?
1. 现代操作系统
2. 现代后台服务器
3. 现代浏览器?
4. 现代化前端架构?
机遇?
越来越多的业务和应用都逐渐转至浏览器来进行开发的啊, 收割技术 红利?
Chrome默认策略?
每个标签对应一个页面一个渲染进程?
有些进程是服务进程