做打鱼网站需要多少钱,企业邮箱如何申请,wordpress seo.php,宁晋网站建设分享cosine 大佬#xff0c;版权️大佬所有
浏览器的核心功能
浏览器#xff0c;“浏览” 是这个产品的核心#xff0c;浏览无非分为两步#xff1a;
获取想浏览的资源
展示得到的资源 现代浏览器还增加了交互功能#xff0c;这涉及到脚本运行。因此#xff0c…分享cosine 大佬版权©️大佬所有
浏览器的核心功能
浏览器“浏览” 是这个产品的核心浏览无非分为两步
获取想浏览的资源
展示得到的资源 现代浏览器还增加了交互功能这涉及到脚本运行。因此理解浏览器的核心就是理解其三大引擎如何工作
网络引擎
渲染引擎
脚本引擎 浏览器架构的选择单进程 vs 多进程
在设计浏览器这样复杂的程序时我们面临两种基本结构的选择
单进程 多线程所有功能集中在一个进程中通过多线程实现各个功能。
多进程 每个进程少量线程 IPC 通信核心服务被抽离成独立进程进程间通过 IPC 通信。 单进程 多线程模式 多进程模式
选择哪种结构这是一个值得考虑的问题。我们可以想想各自的优缺点 单进程结构
优点
内存效率高多个线程共享一个进程的内存开销
通信效率高线程之间由于可以访问公共内存通信开销较小 缺点
稳定性差一个线程挂掉可能引起整个进程挂掉对于浏览器而言这是致命的比如一个页面挂掉可能导致整个浏览器挂掉
安全性差进程之间可以访问公共内存页面之间难以实现有效的沙箱隔离
可拓展性差功能越多意味着一个进程越来越大庞大耦合难以避免的变多 多进程结构
优点
多进程程序解决了单进程的一些缺点
稳定性一个进程挂了不会引起其他进程一个页面挂了不会影响其他页面
安全性进程之间天然隔离可以实现更严格的沙箱
利用现代 CPU多进程可以更好的使用现代多核 CPU
拓展性将各个模块抽离成一些独立的进程实现解藕单独维护 缺点
更多的资源内存I/OCPU时钟消耗
更多的进程通信IPC开销 浏览器架构的历史演变
在回看一个产品时不要脱离其历史背景。
早期的浏览器功能简单且计算机内存资源昂贵此时单进程的设计也许更合理。
但随着人类社会的发展计算资源相对宽裕计算能力大幅度提升且用户的复杂了很多此时多进程的结构更加合理。
1990年代单进程架构内存资源昂贵简单的网页内容2000年代初单进程多线程网页开始复杂化多核处理器出现2008年Chrome发布多进程架构硬件性能提升内存成本下降2010年代多进程架构普及移动设备兴起网页应用复杂度大增现在持续优化的多进程架构智能资源管理云计算和边缘计算的影响浏览器架构的演变
浏览器架构的选择与其所处的时代背景密切相关
早期功能简单计算机资源昂贵单进程设计更合理。
现代计算资源丰富用户需求复杂多进程结构更加适合。 现代多进程浏览器架构
前面提到现代浏览器使用多进程的架构模式。
以我的 Chrome 浏览器举例
浏览器主进程 程序 UI地址栏书签栏前进后退按钮管理标签和窗口协调其他进程网络请求相关
GPU 进程 处理 GPU 任务加速渲染处理 OpenGL 和 2D 绘图操作将渲染进程的绘制命令转为 GPU 命令
实用工具进程: 浏览器将一些特定的任务封装为了独立的进程比如音频处理文件解压存储
渲染进程 浏览器会尽力为每个标签页提供一个独立的渲染进程解析和渲染网页资源
拓展进程 现代浏览器通过插件扩展功能为了安全性每个插件运行在一个独立的进程中
具体功能
主要进程
用户界面
标签管理
进程协调
网络请求
网页渲染
JavaScript执行
图形处理
硬件加速
第三方插件运行
扩展功能运行
特定任务处理
浏览器主进程
渲染进程
GPU进程
扩展进程
实用工具进程
Chrome浏览器 Chrome架构进化的目标是将整个浏览器程序的不同部分服务化便于分割或合并。 前面提到多进程架构会引起更多的内存和计算开销所以 chrome 选择了更灵活的方式
基本思路是:
在高配设备中每个服务独立开进程保证稳定
在低配设备中多个服务合并为一个进程节约资源。同样的思路也应用到了Android上。 结语
一个应用的设计与其时代背景有关技术的推进本质是用户需求的推进。而 Chrome 架构设计也充分体现了一个灵活的架构的优势。 浏览器的核心功能
浏览器架构的选择单进程 vs 多进程
浏览器架构的历史演变
现代多进程浏览器