为什么 Chrome 会按进程对我的标签进行分组?我该如何停止这种做法?

为什么 Chrome 会按进程对我的标签进行分组?我该如何停止这种做法?

我注意到 Chrome 会将所有标签分组到一个渲染进程中,至少对我来说是这样。这是一个问题,因为 Chrome 需要 150k 的 RAM 进行排序,因此运行速度非常慢。
有没有办法强制将每个标签设为单独的进程?

答案1

根据Chrome 文档,有一个--process-per-tab命令行开关可以执行您想要的操作。

答案2

对我来说,他们还没有解决问题。

以下几个链接进一步详细讨论了该问题:

http://code.google.com/p/chromium/issues/detail?id=81877

http://www.google.com/support/forum/p/Chrome/thread?tid=2c6c5ffd1dcd19c5&hl=en

http://code.google.com/p/chromium/issues/detail?id=36617

您可以运行一个 switch 语句(对于非 CLI 用户,这应该是控制面板中的一个选项),它会强制每个选项卡启动一个新进程,但经过进一步阅读和发现,它实际上并没有强制每个选项卡启动单独的进程。

这是 chrome 讨论和设计文档的链接,支持 chrome 浏览器和所有 chrome 相关进程模型的设计和架构。我猜 Android 和 Chrome OS 属于类似类型的设计规范。

http://dev.chromium.org/developers/design-documents/process-models

这个开关的名称有点误导,因为它告诉我“每个选项卡一个进程”,但实际上它是每个选项卡组一个进程,具有类似的脚本,并且不断被改进并合并为一个巨大的进程。我的电脑也有 500 到 800 MB 的内存。一个进程就占用了近 1GB 的内存。它让我的电脑慢得要死。更重要的是,可能是因为所有的内存都被调出了,但无论如何,如果每个选项卡都是一个单独的进程,至少内存和分页操作会完全不同,本质上是将负载分布在 CPU 和内存上(包括分页)。

Chromium 还支持一个更简单的模型,该模型为每组与脚本相关的选项卡专门分配一个渲染器进程

开源“chromium”项目关于每个选项卡一个进程模型的说法:

“Chromium 还支持一个更简单的模型,该模型为每组与脚本连接的选项卡专门分配一个渲染器进程。”

Chromium 创建的渲染进程数量存在全局限制。这可防止浏览器因进程过多而导致用户计算机不堪重负。目前,大多数机器上的渲染进程数量限制为 20 个,而安装内存较少的机器上的渲染进程数量则更少。因此,单个渲染进程可能专用于多个网站。这种重用目前是随机进行的,但 Chromium 的未来版本可能会应用启发式方法,更智能地将网站分配给渲染进程。

相关内容