web-dev-qa-db-ja.com

FirefoxにすべてのCPU容量を使用させるにはどうすればよいですか?

Firefoxなどの一部のプログラムは、すべてのCPUの最大25%しか使用しません(1スレッドのみ)。

ただし、WinRARなどの一部のプログラムは、すべてのCPUを最大100%使用します。

FirefoxにCPUの全容量(WinRARなど)を使用させるにはどうすればよいですか?

私はWindows7とIntelCore-i5 CPU(4スレッド)を持っています。

1
EmRa228

一部のタスクは、並列処理の恩恵を受けることができます。
たとえば、1人が9か月で1つの家を建てることができる場合、(多分)9人が1か月で1つの家を建てることができます。

ただし、一部のタスクは並列処理の恩恵を受けることができません。
たとえば、女性は9か月で赤ちゃんを妊娠して出産できますが、9人の女性が1か月で1人の赤ちゃんを産むことは決してありません。

Firefoxは本質的に入力応答プログラムです。
URLを入力するか、リンクをクリックします。
Firefoxは、リモートサーバーからWebページを取得する要求を発行し、待機します。
Webページが配信されると、Firefoxはこの入力を処理し、画面に表示します。
Firefoxは次の入力アクションを待ちます。

Firefoxは、並列処理の恩恵を(大幅に)受けないプログラムです。
したがって、Firefoxは(明らかに)1つのコアのみを使用するシングルスレッドプログラムとして実装されています。
WinRARなど、計算量が多くマルチスレッドとして実装される他のプログラムは、並列処理の恩恵を受け、複数のプロセッサ/コアで実行されます。

7
sawdust

あなたはできません、プログラムの開発者だけができます。

あなたが持っている唯一のオプションは、100%のCPU使用率がプログラムの4つのコピーを開くことである場合、各コピーはコアを占有します。

5

Windowsのスレッドは、クォンタム(タイムスライス)が終了するか、ブロックする(たとえば、完了していないI/Oを実行する)か、準備ができたばかりのより高い優先度を実行するために中断されるまで実行されます。

Windowsでは、スレッドの優先度を THREAD_PRIORITY_TIME_CRITICAL まで上げることができます。ただし、優先度の最も高いスレッドでさえ、Windowsスケジューラによって優先度の低いスレッドを実行するために中断されることがあります。Windowsスケジューラは、 ランダムブースト を使用して 優先度の逆転 と呼ばれるデッドロック状態を回避します。

アプリケーションが新しいスレッドを作成する方法とタイミング、およびそれらが行うことは、プログラムの内部ロジックに埋め込まれた設計上の決定であり、おそらくアプリケーションの使用方法(たとえば、より多くのタブを開くなど)以外では制御できるものではありません。

結論として、CPU使用率を可能な限り最大化するために何が必要か疑問に思っている場合、答えは、プロセッサと同じ数のスレッドでCPUを集中的に使用するアクティビティを実行し、I/Oをブロックせずに実行することです。他のタスクよりも優先度が高い(たとえば、フォアグラウンドアプリである)。

3
Nicole Hamilton

Mozilla Firefox は、複数のコアを備えたCPUが普及する前に作成されたソフトウェアに基づいています。そのため、個別のプログラムに分割するのは簡単ではない複雑なスレッドシステムを備えた単一のプロセスを使用します。 投票して参加する電気分解 プロジェクト:

このプロジェクトの目標は、Firefox自体とは別のプロセスでWebコンテンツを実行することです。このモデルの2つの主な利点は、セキュリティとパフォーマンスです。コンテンツプロセスをサンドボックス化できるため、セキュリティが向上します(ただし、コンテンツプロセスのサンドボックス化はElectrolysisとは別のプロジェクトです)。ブラウザーUIは、コンテンツコード(レイアウトまたはJavaScript)のパフォーマンスの低下による影響を受けないため、パフォーマンスが向上します。また、コンテンツプロセスを相互に分離することもできます。これにより、同様のセキュリティとパフォーマンスのメリットが得られます。

Geckoプラットフォームは複数のプロセスをサポートしていますが、Firefoxフロントエンドはそれらを使用するようには設計されていません。フロントエンド(アドオンを含む)が複数のプロセスをサポートするようにする作業は、2013年の初めに開始されました。 プロジェクトロードマップ に詳細があります。

Microsoft Internet Explorer および Google Chrome は、スレッドをいじったりつまずいたりする代わりに、フルCPUを使用して一度に複数のタブを処理することができます。多くの場合、Firefox全体が次のような些細なことでフリーズします JavaScriptで雪片をレンダリングする1つのタブ

1
Cees Timmerman

いいえ。スレッド化はアプリケーション開発者によって行われる決定であり、特定の場合にのみ使用できます(または少なくとも有益です)。さらに、CPUは実行時間がかかる可能性のあるコンポーネントの1つにすぎないため、ディスクまたは高周波RAMの更新を待機している場合、アプリがマルチスレッド化されていても、CPUは説明したとおりに動作します。マルチコアチップ。

1
Frank Thomas