baixiaoji / blog

writting & thinking
3 stars 0 forks source link

1-浏览器架构-实践篇 #6

Open baixiaoji opened 5 years ago

baixiaoji commented 5 years ago

1-浏览器架构-实践篇

那么我们来来看看Chrome是对应的浏览器架构是怎样的呢?当我们打开任务管理器的时候,会看到看到浏览器开启会有多个进程(可以通过Chrome的更多工具 -> 任务管理器自行查看。)。

那我们来来看看chrome有哪些主要进程吧。

不同进程负责的区域

那多进程架构由那些优/劣势呢?

优势 劣势
单一页面的 crash 并不会影响浏览器 不同进程内存不能共享,导致不同进程内存中存有相同信息
插件的 crash 并不会影响浏览器
多进程充分利用多核优势
更为安全,在系统层面上限定了不同进程的权限

chrome 为了节省内存的使用,限制了最多的进程数,最大进程数量由设备的内存和 CPU 能力决定,当达到这一限制时,新打开的 Tab 会共用之前同一个站点的渲染进程。

Chrome 把浏览器不同程序的功能看做服务,这些服务可以方便的分割为不同的进程或者合并为一个进程。以 Broswer Process 为例,如果 Chrome 运行在强大的硬件上,它会分割不同的服务到不同的进程,这样 Chrome 整体的运行会更加稳定,但是如果 Chrome 运行在资源贫瘠的设备上,这些服务又会合并到同一个进程中运行,这样可以节省内存。

以上介绍完了浏览器的基本架构,但是我们最开始的问题还没开始解决呢!回顾一下问题:

「在浏览器地址栏中输入 url 到页面展现的短短几秒内浏览器究竟做了什么?」