2016-10-04 60 views
1
  • 操作系统概念第9版,第123页,“多进程 架构CHROME BROWSER”
  • 在这个部分中,作者说,每个标签代表一个独立的 过程,但是当我看任务管理器(Windows) ,“Google Chrome”下只有一个 进程,例如,现在是堆栈溢出, 我仍在打开其他选项卡,为什么我无法在任务管理器中找到它?
  • 还有一些其他的“过程”,但我认为用这些选项卡做 是“没有”,因为当只有一个选项卡时,它们在这里仍然是 。那么如何理解这本书的内容呢?

回答

3

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

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

的MacOS: mac os chrome

的Windows: windows chrome

正如你所看到的,每个任务都有自己的PID(进程ID )


详情:

另外你可以参考Chrome is using 1 process per website instead of per tab,Chrome tabs and processes的问题。

这里是关于Chrome/Chromium的过程模型的official documentation

进程与每个站点:

铬还支持隔离彼此不同的部位,但组相同位点的所有实例到相同的过程的过程模型。要使用此模型,用户在启动Chromium时应指定一个--process-per-site命令行开关。这会创建更少的渲染器进程,交易一些鲁棒性以降低内存开销。该模型基于内容的起源而不是制表符之间的关系。

过程每标签:

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

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)); 
    } 
相关问题