2011-10-29 4 views
-2

現在、1つのスレッド(メイン)を使用している比較的シンプルなプログラムがあります。アプリケーションの完了には約30分かかります。ただし、タスクマネージャーによれば、処理能力の25%しか使用していません。私のプロセッサの4つのコアに広がっているようです。Java - 非常に高い計算能力のために、より多くの処理能力を使用する

JVMのリソースを「使用する」方法はありますか?

ファイルには多くの読み書きがあります。これはボトルネックであり、したがって処理リソースのわずか25%が使用されている理由ですか?

おかげ

答えて

6

あなただけが唯一の総処理能力の25%を使用することができます定義することによって、その後かなりのシングルスレッドと4つのコアを、持っていれば。プロセッサ間でそのスレッドがホップするかどうかは重要ではありません。

JVMでより多くのリソースを使用させたい場合は、操作を並列化する必要があります。私たちは本当にあなたがその仕事についてのさらなる情報なしでそれをするのを手助けすることはできません。

ファイルの読み取りと書き込みに関しては、CPUのボトルネックではありませんが、他の領域ではボトルネックになることがあります。

+0

+1:CPUにバインドされたプロセスがある場合は、スレッド数が多いほど良いと仮定しないでください。 4コアすべてを使用する必要がある最小スレッド数は4スレッドです。 –

0

1つのスレッドは、実行中に1つのコアから別のコアに切り替えることはできますが、複数のコアにまたがって表示されます。 4つのコアすべてを利用するには、同時に実行できるスレッドが少なくとも4つ必要です。

関連する問題