早期 Chrome 进程架构图
目前多进程架构
打开浏览器运行四个进程:浏览器主进程,渲染进程,GPU进程,网络进程;(有安装插件会多一个插件进程,像react-developer-tools、vuedevtools等等)
浏览器主进程:主要负责渲染进程渲染后的显示,包括图片音视频显示等等,负责与浏览器之外的系统进程和磁盘通信,简称IPC,主要是读写数据和获取操作系统权限,例如渲染进程的input标签上传图片,通过与浏览器主进程通信,主进程读取硬磁盘图片数据返回给渲染进程;
渲染进程:主要负责html+css的渲染与js执行,每个域名下有单独的渲染进程,进行隔离的好处是避免js单线程执行出现问题导致其它域名下的页面奔溃,例如for无限循环导致的单线程阻塞;(注意:同个域名下一个页面死循环会导致该域名下其它页面无响应奔溃)
GPU进程:主要负责动画和页面渲染,例如CSS3,flash动画,游戏等等,目前也负责页面的绘制,最终交给浏览器主进程显示;
网络进程:主要负责文件的下载,ajax的请求等等;
补充:
目前渲染进程里的webkit引擎分webcore和js的执行环境jscore(即后来的V8),google的Blink也是基于webkit基础上实现。

