浏览器架构
浏览器架构演进
浏览器架构主要分为三种,单进程架构、多进程架构和面向服务架构。
其中单进程架构主要存在于早期的浏览器之中,所有的功能都在一个进程中实现,包括网络、插件、JavaScript的运行环境等,受限于当时的内存技术水平,单线程有利于减少浏览器所占内存的大小,同时结构简单,易于实现。但缺点也有以下几点:
- 拓展性低:所有功能集成在一个进程中,访问同一块内存区域,数据无法隔离,若要增加功能可能会影响已有功能
- 安全性低:第三方插件可直接访问操作系统中的资源,容易被攻击
- 稳定性低:进程中任何一个功能模块崩溃或JavaScript脚本访问错误都可能导致整个页面崩溃
- 流畅度低:所有页面运行在同一个进程,开启多个页面时会有明显卡顿
后来产生了多进程架构,分为主进程、网络进程、渲染进程、GPU进程、插件进程分别管理,针对单进程的缺点逐一改进,同时让每个页面都运行在独立的沙盒里面保证了系统安全性,但随之而来的是内存的消耗增多。
在多进程架构的基础上又开发出了面向服务架构,这个架构将原来的UI、数据库、文件、设备、网络等,作为一个独立的基础服务,相较于多进程架构,服务模块划分的更细致,易于对功能进行拓展。
浏览器架构-任务管理器
浏览器的任务管理器类似于Windows系统中的任务管理,负责监控、管理各个进程,并将浏览器的资源分配给不同进程,以保证浏览器的性能和稳定。