浏览器知识点相关补充
计算机的三层架构,最下层是硬件机器,中间是操作系统,最上层是应用
当启动应用的时候,操作系统会为这个程序创建一个进程,兵为这个进程分配一片私有的内存空间,当关闭这个程序时,对应的进程也会消失,进程对应的内存也会被释放掉
不同进程之间通过IPC通信 谷歌浏览器是多进程架构
采用多进程架构的原因 - 具有很好的容错性,如果所有tab跑在一个进程里,当一个tab挂掉就会连带其他tab一起挂掉,多进程架构使每个tab拥有独立的进程,互不影响 -具有更好的安全性,操作系统可以限制每个进程拥有的能力,例如渲染进程可能会处理来自用户的随机输入,所以浏览器限制了它对系统文件随机读写对能力 不过多进程架构也有它不好的地方,那就是进程的内存消耗。由于每个进程都有各自独立的内存空间,所以它们不能像存在于同一个进程的线程那样共用内存空间,这就造成了一些基础的架构(例如V8 JavaScript引擎)会在不同进程的内存空间同时存在的问题,这些重复的内容会消耗更多的内存。所以为了节省内存,Chrome会限制被启动的进程数目,当进程数达到一定的界限后,Chrome会将访问同一个网站的tab都放在一个进程里面跑 网站隔离
网站隔离会为网站内不同站点的iframe 分配一个独立的进程,当不同站点的iframe跑在同一个进程里的时候,他们会共享一片内存,这就有可能会破坏同源策略,会造成一些安全隐患,同源策略是浏览器最核心的安全模型,它可以禁止网站在未经同意的情况下去获取另一个站点的数据 一旦渲染进程“完成”(finished)渲染,它会通过IPC告知浏览器进程(注意这发生在页面上所有帧(frames)的onload事件都已经被触发了而且对应的处理函数已经执行完成了的时候),然后UI线程就会停止导航栏上旋转的圈圈
------------恢复内容结束------------
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)