从浏览器(chrome)进程机制的分析到JavaScript 运行机制

浏览器作为一个软件,大家有没有好奇浏览器是多进程的还是多线程的?每打开一个浏览器页面代表着是一个线程还是一个进程呢?

其实浏览器是一个多进程软件,从开发的角度来说,相对安全的,多线程意味着大家都在'一条船上',你打开苹果的官网和三星的官网,苹果官网的页面崩溃了,三星的页面也要和你崩溃吗?无论开发者如何做多线程隔离,线程安全等等操作,整体效果没有多进程来的安全和稳定的。一般来说一个页面是一个进程,某些浏览器会做优化例如你打开同一个网址。

下面我以chrome浏览器来分析其运行机制:

首先我们打开chrome的进程管理器,打开浏览器,按下shift+esc即可,或者如图所示More Tools->Task Manager

从浏览器(chrome)进程机制的分析到JavaScript 运行机制

 就出现这个Task Managerc窗口了

 

从浏览器(chrome)进程机制的分析到JavaScript 运行机制

browser进程:浏览器的主进程,负责界面的显示,用户交互,子进程的管理,提供存储等功能

GPU Process:GPU进程,负责绘制 repaint 重绘后的 UI 界面

Utility Network:网络进程,负责页面网络资源的加载

插件进程:有插件会显示插件进程

render进程:内核进程,前端工程师开发和关注的界面