how browsers work
how browsers work
浏览器工作原理
https://www.html5rocks.com/zh/tutorials/internals/howbrowserswork/#The_rendering_engine
单线程, 多进程
- Browser process
- Render process
- GPU process
- Utility process
- Plugins process
https://imweb.io/topic/58e3bfa845e5c13468f567d5
Chrome 多进程
js 单线程
浏览器多进程架构
跟现在的很多多线程浏览器不一样,Chrome浏览器使用多个进程来隔离不同的网页;
因此在Chrome中打开一个网页相当于起了一个进程,
那么Chrome为什么要使用多进程架构?
在浏览器刚被设计出来的时候,那时的网页非常的简单,每个网页的资源占有率是非常低的,因此一个进程处理多个网页时可行的;
然后在今天,大量网页变得日益复杂。把所有网页都放进一个进程的浏览器面临在健壮性,响应速度,安全性方面的挑战;
因为如果浏览器中的一个tab网页崩溃的话,将会导致其他被打开的网页应用;
另外相对于线程,进程之间是不共享资源和地址空间的,所以不会存在太多的安全问题,
而由于多个线程共享着相同的地址空间和资源,所以会存在线程之间有可能会恶意修改或者获取非授权数据等复杂的安全问题;
浏览器内核
浏览器内核是多线程? process 进程
浏览器内核是多线程,在内核控制下各线程相互配合以保持同步,一个浏览器通常由以下常驻线程组成:
GUI 渲染线程
JavaScript引擎线程
定时触发器线程
事件触发线程
异步http请求线程
Chrome浏览器为每个tab页面单独启用进程,因此每个tab网页都有由其独立的渲染引擎实例;
DOM tree + CSSOM tree => Render tree
https://juejin.im/entry/5b2f6dc9f265da596a367cb2
https://zhuanlan.zhihu.com/p/47407398
https://time.geekbang.org/column/intro/100033601
https://blog.fundebug.com/2019/01/03/understand-browser-rendering/
本文首发于博客园,作者:xgqfrms,原文链接:https://www.cnblogs.com/xgqfrms/p/12897798.html
未经授权禁止转载,违者必究!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
2019-05-15 bye MVA
2019-05-15 Google Advanced Search Skills All In One
2019-05-15 react & redux data flow diagram
2016-05-15 UML 官方绘制教程, 视频教程!
2016-05-15 office 2013 “帮助”选项 word 2013怎样从指定的一页开始设置页码
2016-05-15 论文格式规范要求! 科技论文中图片的处理方法
2016-05-15 W3C CSS 3 各种标准的状态!