Chrome标签页和进程

5
我正在使用Chrome浏览器阅读Google图书,他们讲述了为什么需要启动一个进程来托管浏览器标签页的原因。所以:

2个标签页= 2个Chrome进程

3个标签页= 3个Chrome进程,以此类推…是这样吗?

但我打开了大约20个标签页,在任务管理器中,我只能找到3个Chrome进程…发生了什么?

我曾经被告知创建进程在资源方面是一个昂贵的事情,还有其他轻量级选项可用(例如.NET应用程序域)...那么Chrome是否采取了一种混合方法?创建少量进程,然后在这些有限的进程集内开始托管额外的标签页?

4个回答

6

该网站托管在第一个进程中。打开Chrome浏览器,您将看到2个进程(管理器和初始选项卡)。然后打开10个以上的选项卡,您会注意到第二个进程的内存急剧增加。接着在第一个选项卡中输入google.com或其他内容,您将看到一个新进程被创建。

还要注意,如果您按下Shift+Esc并在Chrome中打开任务管理器,所有这些选项卡将分组在一起,其中一个具有内存,其他没有。


3
不要忘记,如果两个网站共享一个会话,它们将共享一个进程。因此,从一个打开新页面的网站跟随链接将在相同的会话(因此是相同的进程)中进行。
对于使用 Ctrl+T 创建的每个选项卡,您应该获得一个新的进程。

2
我还注意到,浏览同一域名的标签会被分组到同一个进程中。因此,如果您有3个标签浏览stackoverflow.com,这三个标签将显示为一个进程。

这似乎不是我的情况。我在左侧打开了一个“相关”链接,但两个选项卡并未显示为同一进程。[图片] (http://i.imgur.com/p6pMVSw.png) - user2486953

0

进程创建相对于线程创建来说是比较昂贵的。但在Chrome中,进程创建的频率非常慢,因此真正的问题是资源开销与其他技术相比。

Google团队认为,独立进程模型的好处可以弥补资源成本。考虑到当前桌面机器的资源,这种权衡是很有意义的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接