計算が難しいアプリケーションを作成したため -> 実行する作業が多く、それほど複雑な計算ではない -> 計算に時間がかかりすぎ、プロセスは CPU の 45% しか使用されません。どうにかして最大化できますか?: 90% にするには?
4 に答える
デュアル コア マシンを使用している場合 (そうだと思います)、シングル スレッドで期待できる最大の CPU 使用率は 50% です。
90% の CPU 使用率を得るには、ほとんどの場合、計算をスレッド化する必要があります。これは、スレッド化するアルゴリズムの性質に応じて、非常に単純な場合も非常に難しい場合もあります。
作業セットを複数のグループに分割できる場合は、リリースのタイミングに応じて、 ThreadPool、または場合によってはTask Parallel Libraryの使用を検討することをお勧めします。
これをチェックして:
- 計算中にディスクから読み込みますか? その場合は、計算の前にメモリ内のデータを読み取ってみてください。
- 計算中に結果をディスクまたはコンソールに書き込みますか? その場合は、計算が終わるまで書き込みを延期してから書き込みを行ってください。
- マルチコア プロセッサを使用している場合は、可能であればマルチスレッド アルゴリズムを作成してみてください。
デュアル コア CPU を使用している可能性が高く、アプリがシングル スレッドの場合、使用する最大 CPU は 50% (すべて 1 つのコア) です。より効果的に使用するには、複数のスレッドを利用する必要がありますが、それは、複数のコアで処理できるように、計算を細かく分割する方法を考え出すことも意味します。
計算を行う単純なループがあるだけの場合、コンピューターには 2 つのコア/プロセッサが搭載されている可能性が高くなります。シングル スレッド アプリケーションは、せいぜい CPU の 50% しか使用しません。
マルチコア マシンで CPU 全体を使用するには、複数のスレッドが必要です。