2016-10-04 6 views
1
  • オペレーティングシステムの概念第9版、123ページ、「マルチ ARCHITECTURE-Chromeブラウザ」
  • この部分では、著者は、各タブは別々の プロセスを表しますが、私は、タスクマネージャを見て(窓)と言いました「Google Chrome」の下に というプロセスが1つしかありません。たとえば、スタックオーバーフローが発生しました。 まだ他のタブを開いていますが、なぜタスクマネージャで見つからないのですか?
  • 他の「プロセス」もありますが、これらのタブでは を「何もしません」と思っています。なぜなら、1つのタブしかない場合は、まだ です。その本が何を言うのか理解するには?

答えて

3

Chromiumは、ブラウザがレンダラープロセスにページを割り当てる方法に影響を与える4つの異なるモデルをサポートしています。 デフォルトでは、Chromium(Chrome)はユーザーがアクセスするウェブサイトのインスタンスごとに別々のOSプロセスを使用します。しかし、Chromiumを起動して、Webサイトのすべてのインスタンスに対して1つのプロセス、接続されたタブのグループごとに1つのプロセス、または1つのプロセス内のすべてのプロセスを選択するためのコマンドラインスイッチを指定できます。

のMacOS: mac os chrome

Windowsの場合:私は次のような状況持っている私の場合は

windows chrome

をあなたが見ることができるように、タスクのそれぞれが独自のPID(プロセスIDを持っています)


詳細:

Chrome is using 1 process per website instead of per tab,の質問も参照できます。

クロム/クロムのプロセスモデルについては、official documentationです。

プロセスあたりのサイト:

クロムはまた、互いに異なるサイトを隔離するプロセスモデルをサポートしていますが、同じプロセスにグループ同じサイトのすべてのインスタンスを。このモデルを使用するには、Chromiumの起動時に--process-per-siteコマンドラインスイッチを指定する必要があります。これにより、より少ないメモリオーバヘッドのために堅牢性を犠牲にしてレンダラープロセスが少なくなります。このモデルは、コンテンツの原点に基づいており、タブ間の関係には基づいていません。

プロセスあたりのタブ:

レンダラーのプロセスを作成する際に、コンテンツの起源を考えるプロセス-サイトごとのインスタンスおよびプロセス・サイトごとのモデルの両方。 Chromiumは、スクリプトに関連付けられたタブの各グループに1つのレンダラープロセスを専用化する、よりシンプルなモデルもサポートしています。このモデルは、 - 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)); 
    } 
関連する問題