宏观视角上的浏览器
Chrome架构
右击chrome,可以发现chrome也有任务管理器 当使用Chrome只打开了一个页面,可以发现有多个进程在执行 !
这就要从操作系统的角度来看浏览器,也就是宏观视角。
首先介绍一点简单的操作系统知识
进程和线程
介绍完了,操作系统的基本知识,接下来简单介绍一下浏览器的发展历史
单进程浏览器时代
多进程浏览器时代
目前多进程架构
? 包括 1个浏览器主线程,1个GPU进程,1个网络进程,多个渲染进程,多个插件进程,即增加了GPU进程和网络进程
-
浏览器进程 主要负责界面现实、用户交互、子进程管理,同时提供存储等功能 -
渲染进程 核心任务是将HTML、CSS和JS转换为用户可以为止交互的网页,排版引擎 Blink 和 JS引擎V8都是运行在该进程中,默认情况下,Chrome会为每个Tab标签创建一个渲染进程。渲染进程都是运行在沙箱模式下。 -
GPU进程 Chrome刚开始发布的时候没有GPU进程,而GPU的使用初衷是为了实现3D CSS的效果,只是随后网页、Chrome的UI界面都选择采用GPU来绘制,这使得GPU称为浏览器普遍的需求,最后Chrome在多进程架构上也引入了GPU进程 -
网络进程 主要负责页面的网络资源加载,之前是作为一个模块运行在浏览器进程里面的,直至最近才独立出来,成为一个单独的进程。 -
插件进程 主要负责插件的运行,因插件易崩溃,所以需要通过插件进程来隔离
多进程架构的缺点
未来面向服务的架构
Chrome正在逐步构建Chrome基础服务,如果认为Chrome是便携式操作系统,那么Chrome基础服务便可以被视为该操作系统的基础系统服务层
同时Chrome还提供灵活的弹性架构,在强大性能设备上会以多进程的方式运行基础服务,但是如果在资源的设备上,Chrome会将很多服务整合到一个进程中,从而节省内存占用
操作系统,那么Chrome基础服务便可以被视为该操作系统的基础系统服务层
同时Chrome还提供灵活的弹性架构,在强大性能设备上会以多进程的方式运行基础服务,但是如果在资源有限的设备上,Chrome会将很多服务整合到一个进程中,从而节省内存占用。
|