我正在阅读有关Chrome的Google Books,他们在这里谈论为什么他们决定在您创建一个新标签时决定启动一个托管浏览器选项卡的过程。所以

2 个标签 = 2 个镀铬工艺

3 个选项卡 = 3 个镀铬工艺等等..正确的??

但我打开了大约 20 个左右的选项卡,但在任务管理器中,我只能找到 3 个 chrome 进程。

到底是怎么回事??

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

有帮助吗?

解决方案

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

另请注意,如果您执行shift+esc并在chrome中打开任务管理器,所有这些选项卡将被分组在一起,一个带内存,其他不带内存。

其他提示

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

对于使用以下命令创建的每个选项卡 控制键+时间, ,你应该得到一个新的进程。

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top