web-dev-qa-db-ja.com

Chromeタブをプロセスにグループ化するのはなぜですか?どうすれば停止できますか?

Chromeでは、少なくとも私にとっては、すべてのタブが1つのレンダラープロセスにグループ化されていることに気づきました。これは問題です。なぜなら、Chromeは、150kのRAMをソートするのに非常に時間がかかるからです。
すべてのタブを個別のプロセスにするように強制する方法はありますか?

8
digitxp

Chromeドキュメント によると、必要な処理を実行する--process-per-tabコマンドラインスイッチがあります。

4
whitequark

私にとって、彼らはまだ問題を解決していません。

この問題についてさらに詳しく説明しているリンクをいくつか示します。

http://code.google.com/p/chromium/issues/detail?id=81877

http://www.google.com/support/forum/p/Chrome/thread?tid=2c6c5ffd1dcd19c5&hl=en

http://code.google.com/p/chromium/issues/detail?id=36617

タブごとに新しいプロセスを強制する実行可能なswitchステートメントがあります(CLI以外の人のコントロールパネルのオプションである必要があります)が、さらに読んで発見した後、実際にはタブごとに個別のプロセスを強制しませんそれ自体。

これは、chromeブラウザとすべてのクロム関連プロセスモデルの設計とアーキテクチャをサポートするクロムのディスカッションと設計ドキュメントへのリンクです。私は推測していますAndroidおよびChrome OSは同様のタイプの設計仕様に該当します。

http://dev.chromium.org/developers/design-documents/process-models

スイッチの名前は、「タブごとに1つのプロセス」と書かれているため、少し誤解を招く可能性がありますが、実際には、同様のスクリプトを持つタブのグループごとに1つのプロセスであり、絶えず改良され、プロセスの1つの巨大なリバイアサンにマージされています。鉱山も500から800MB以上になります。単一のプロセスのためだけのほぼギガバイトのメモリ。それは私のコンピュータを停止させるのを遅くします。さらに、おそらくそのすべてのメモリがページアウトされているためですが、いずれにしても、各タブが別々のプロセスである場合、少なくともメモリとページング操作は全体的に異なり、基本的にCPUとメモリの両方に負荷が分散されます(ページングを含む)。

Chromiumは、スクリプトに接続されたタブの各グループに1つのレンダラープロセスを割り当てる、より単純なモデルもサポートしています。

タブごとに1つのプロセスモデルに関するオープンソースの「chromium」プロジェクトの言葉:

「Chromiumは、スクリプトに接続されたタブの各グループに1つのレンダラープロセスを割り当てる、より単純なモデルもサポートしています。」

Chromiumが作成するレンダラープロセスの数にはグローバルな制限があります。これにより、ブラウザがプロセス数が多すぎてユーザーのコンピュータを圧倒するのを防ぎます。現在、制限はほとんどのマシンで20レンダラープロセスであり、インストールされているメモリが少量のマシンではそれより少なくなっています。その結果、単一のレンダラープロセスが複数のサイト専用になる場合があります。この再利用は現在ランダムに行われていますが、Chromiumの将来のバージョンでは、ヒューリスティックを適用して、サイトをレンダラープロセスによりインテリジェントに割り当てる可能性があります。

3