作为前端天天和浏览器打交道,怎么能不对其有所了解呢?这两天看了一些浏览器相关的文章,现在简单总结下自己的理解。
浏览器架构
- 我们把浏览器分为8个部分,用户界面,浏览器引擎,渲染引擎,网络模块,JS引擎(v8),XML解释器,显示后端,数据持久化
- 渲染引擎和JS引擎处于不同线程,同时这两个线程是互斥的,不能同时运行(保证DOM渲染正常)
- 浏览器的不同TAB页属于不同进程,避免页面崩溃相互影响
- CPU 是计算机逻辑处理,数据运算的核心,GPU 相对于 CPU,专为图形渲染中的数学和几何运算设计,使用 GPU 绘制动画更高效(GPU硬件加速的原理)
补充:进程和线程的区别
- cpu
CPU 类比为一座工厂,可以处理不同的任务(多进程)。
- 进程
进程是个车间,处理单一任务,其有独立的场地(内存)。
- 线程
线程是工人(多线程),共享资源(内存),当资源有限(厕所)无法同时使用时候需要上锁(线程锁)。