2026年5月27日 01:10

Chrome 打开一个页面需要启动多少进程?分别有哪些进程?

Chrome 是多进程架构,主要进程:

  • Browser 进程(1 个):主进程,管 UI(地址栏、书签)、网络请求、文件访问。协调其他进程。
  • Renderer 进程(每个标签页一个):渲染页面内容(HTML、CSS、JS)。沙箱隔离,一个页面崩不影响其他页面。
  • GPU 进程(1 个):处理 GPU 任务(CSS 3D 变换、WebGL、视频解码)。
  • Plugin 进程(按需):隔离运行的插件(Flash 等,现已很少)。
  • Network 进程(1 个,较新版本):独立的网络进程。
  • Utility 进程(按需):音频、扩展等。

同一站点(same-site)的标签页可能共享 Renderer 进程以节省内存。具体数量取决于你开了多少标签页、多少扩展。

追问

为什么 Chrome 用多进程而不是多线程?

稳定性和安全性。如果一个标签页崩溃或卡死,只影响那个 Renderer 进程,不会拖垮整个浏览器。沙箱机制也只限制单进程的权限。缺点是内存占用高,所以 Chrome 引入了进程共享(同一站点共享 Renderer 进程)。

Renderer 进程里是什么?

Renderer 进程包含:主线程(JS 执行、样式计算、布局)、合成线程(处理滚动、动画)、Raster 线程(将绘制命令转成位图)、Worker 线程等。主线程阻塞是页面卡顿的主要原因。

内存不够时 Chrome 会怎么做?

Chrome 会动态管理:冻结后台标签页的进程(节省内存)、优先杀掉非活动标签页的 Renderer 进程、同一站点合用一个 Renderer 进程。开大量标签页时内存压力还是很大。

标签:前端Browser