C# でアプリケーションが使用する電力を最大化するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/716261

  •  23-08-2019
  •  | 
  •  

質問

計算が難しいアプリケーションを作成したため、あまり複雑な計算ではなく、やるべき作業がたくさんあり、処理に時間がかかりすぎ、プロセスは CPU の 45% しか使用していません。何らかの方法で最大化できますか?:90%に行くには?

役に立ちましたか?

解決

あなたは(私はあなたが推測している)、デュアルコアマシンを持っている場合は、ほとんどあなたがシングルスレッドで取得することを望む可能性が50%のCPU使用率になります。

90%のCPU使用率を取得するには、最も可能性の高いあなたの計算をスレッド化する必要があります。これは、あなたがスレッドにしたいアルゴリズムの性質に応じて、非常に単純な、または非常に困難であろう。

あなたが複数のグループにワーキングセットを破ることができた場合は、

、私は<のhref =「http://msdn.microsoft.com/en-us/library/system.threading.threadpool.aspx」を使用して検討をお勧めしますrelが= "noreferrer"> ThreadPoolのの、または潜在的にさえタスク、ライブラリにパラレルに応じて、リリースのためのあなたのタイミングます。

他のヒント

おそらくよりもより多くのあなたは、デュアルコアCPUを持って、そしてあなたのアプリはシングルスレッドである場合は、それが使用する最大CPUは50%(1つのコアのすべて)です。よりよい利用を取得するためには、複数のスレッドを使用する必要がありますが、それはまた、彼らは、複数のコアが作業できるように粉々にあなたの計算を破るためにいくつかの方法を考え出す意味ます。

これをチェックして:

  1. 計算中にディスクから読み取りますか?その場合は、計算前にメモリ内のデータを読み取ってみてください。
  2. 計算中に結果をディスクまたはコンソールに書き込みますか?その場合は、計算が終わるまで書き込みを延期してから書き込みを行ってください。
  3. マルチコア プロセッサを使用している場合は、可能であればマルチスレッド アルゴリズムを作成してください。

あなたはちょうどその最も可能性の高いコンピュータは2コア/プロセッサを搭載した、計算を行う単純なループを持っている場合。シングルスレッドアプリケーションは、最高のCPUの50%を使用します。

あなたは、マルチコアマシン上で全体のCPUを使用する複数のスレッドを必要とします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top