xgqfrms™, xgqfrms® : xgqfrms's offical website of cnblogs! xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!

how browsers work

how browsers work

浏览器工作原理

https://www.html5rocks.com/zh/tutorials/internals/howbrowserswork/#The_rendering_engine

单线程, 多进程

  1. Browser process
  2. Render process
  3. GPU process
  4. Utility process
  5. 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/


posted @   xgqfrms  阅读(145)  评论(9编辑  收藏  举报
编辑推荐:
· 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 各种标准的状态!
点击右上角即可分享
微信分享提示