4

我在 chrome 上阅读 googlebooks,他们在其中谈论为什么他们决定启动一个进程来托管浏览器选项卡,每次您创建一个新选项卡时。所以

2 个标签 = 2 个镀铬进程

3 个标签 = 3 个 chrome 进程等等.. 对吗??

但是我打开了大约 20 个标签,但在任务管理器中,我只能找到 3 个 chrome 进程..

到底是怎么回事??

我被教导说,就所需资源而言,创建一个流程是一项昂贵的提议,并且还有其他可用的轻量级选项(例如 .net 中的应用程序域)。那么 chrome 是否采取了一些混合方法?创建几个进程,然后开始在这些有限的进程集中托管其他选项卡?

4

4 回答 4

5

它在第一个过程中托管。打开铬。您将看到 2 个进程(管理器和初始选项卡)。然后再打开10个标签,你会注意到第二个进程的内存跳跃很多。然后在第一个选项卡中输入 google.com 或其他内容,您将看到一个新进程被生成。

另请注意,如果您执行 shift+esc 并在 chrome 中启动任务管理器,所有这些选项卡将组合在一起,一个带有内存,其他的则没有。

于 2008-09-03T23:52:17.520 回答
3

不要忘记,如果两个站点共享一个会话,它们共享一个进程。因此,从一个站点打开一个新页面的链接将在同一个会话中(因此也是相同的过程)。

对于使用Ctrl+创建的每个选项卡T,您应该获得一个新进程。

于 2008-09-03T23:50:44.123 回答
2

我还注意到浏览同一域的选项卡在同一进程中分组。因此,如果您有 3 个选项卡浏览 stackoverflow.com,这三个选项卡将被视为一个进程

于 2008-09-04T00:22:29.587 回答
0

进程创建相对昂贵,当然与线程创建相比。但是在 Chrome 中创建进程的频率非常慢,所以真正的问题是资源开销与其他技术相比的数量。

Google 团队认为单独流程模型的好处证明了资源成本是合理的。鉴于桌面计算机上的当前资源,这种权衡很有意义。

于 2008-09-03T23:25:12.687 回答