现代浏览器内部工作原理
汇总图
计算机的核心CPU和GPU
CPU:Central Processing Unit(中央处理器),中心处理器是计算机的大脑,每个CPU核心会逐一执行不同任务现在很多计算机都是多芯片,多内核的。
GPU:Graphics Processing Unit(图形处理器),GPU擅长处理跨内核的简单任务,是为了解决图形而开发的。在图形环境中,“使用GPU支持”和“使用CPU”都与快速渲染与顺滑渲染有关。
许多带扳手的GPU内核说明它们只能执行处理有限任务
当启动电脑时候,是 CPU 和 GPU 为应用供能。通常情况下,应用是通过操作系统提供的机制在 CPU 和 GPU 上运行。
三层计算机系结构:底部是机器硬件,中间是操作系统,顶层是应用程序。
在进程和线程上执行程序 进程(process)和线程(thread)
进程作为边界框,线程为里面抽象的鱼在游动
进程可以被描述为一个应用的执行程序,线程存在于进程并执行任意部分。
启动应用时,会创建一个或者多个进程来帮助应用工作,操作系统为进程提供了一块可以使用的“内存”,应用的所有状态都保存在该私有内存空间中,关闭应用,进程会关闭,操作系统释放内存。
进程可以请求操作系统的另一个进程来执行不同的任务。此时,会分配不同的内存给新进程,进程之间可以通过(IPC:Inter Process Communication)进行通讯。应用的某个工作进程失去响应,该进程就可以在不停止应用程序其他进程的情况下,重启。
独立进程通过 IPC 通信示意图
浏览器架构
不同的浏览器可能是多进程或者单进程的。
Chrome浏览器架构,使用多进程的架构
浏览器顶层是浏览器进程(Browser process),与浏览器其他应用模块进行协调工作。
Chrome浏览器各个进程的工作:
Browser Process:
地址栏,书签栏,前进后退按钮等信息
不可见的一些操作,请求,文件访问等
Rederer Process
负责一个网页 tab 的的所有工作
Plugin Process
插件进程,处理一个网页用到的插件,例如 Flash 的插件
GPU Process
负责处理 GPU 相关的工作 *还有其他进程,例如:扩展应用,应用进程