chrome真的为每个标签创建了一个流程吗?

时间:2016-10-04 13:01:58

标签: google-chrome operating-system taskmanager

  • 操作系统概念第9版,第123页," MULTIPROCESS ARCHITECTURE-CHROME BROWSER"
  • 在这一部分,作者说每个标签代表一个单独的 过程,但是当我看到任务管理器(窗口)时,只有一个 现在,在#Chrome; Google Chrome"下进行处理,例如它的Stack Overflow, 我还在打开其他标签,为什么我无法在任务管理器中找到它?
  • 还有其他一些"流程",但我认为它没有"没有"去做 使用这些标签,因为当只有一个标签时,它们仍然是 这里。那么如何理解这本书的内容呢?

2 个答案:

答案 0 :(得分:5)

  

Chromium支持四种不同的模型,这些模型会影响浏览器将页面分配到渲染器进程的方式。 默认情况下,Chromium(Chrome)会为用户访问的每个网站实例使用单独的操作系统进程。但是,用户可以在启动Chromium时指定命令行开关,以选择其他架构之一:所有网站实例的一个流程,每个连接的选项卡组的一个流程,或单个流程中的所有内容。

在我的情况下,我有以下情况:

的MacOS: mac os chrome

视窗: windows chrome

如您所见,每个任务都有自己的PID(进程ID)

详细说明:

您也可以参考Chrome is using 1 process per website instead of per tabChrome tabs and processes个问题。

以下是关于Chrome / Chromium流程模型的official documentation

<强>过程每次站点:

  

Chromium还支持将不同站点彼此隔离的流程模型,但将同一站点的所有实例分组到同一流程中。要使用此模型,用户应在启动Chromium时指定--process-per-site命令行开关。这会创建更少的渲染器进程,为较低的内存开销交换一些稳健性。此模型基于内容的来源,而不是选项卡之间的关系。

<强>过程每次标签

  

每个站点的进程实例和每站点进程的模型都会在创建渲染器进程时考虑内容的来源。 Chromium还支持更简单的模型,该模型将一个渲染器进程专用于每组脚本连接的选项卡。可以使用--process-per-tab命令行开关选择此模型。

答案 1 :(得分:1)

enter image description here

是的,它显示当前打开的标签MainTitle。 简单的控制台程序就知道了。

Process[] localByName = Process.GetProcessesByName("Chrome");

                foreach (Process p in localByName)
                {



                  Console.WriteLine(string.Format("Process: {0}\n Title:{1} \n P\n", p.ProcessName, p.MainWindowTitle));
    }