2016-08-23 14 views
0

4つ以上のコアを持つ複数のマシンで動作するC++で開発された32ビットアプリケーション。アプリケーションでコア/プロセッサ消費量を分析しています。 32ビットアプリケーションで複数のコアを使用できるかどうか尋ねたいと思いますか?はいの場合は、それを確認する方法はありますか?32ビットアプリケーションが複数のコア/プロセッサを使用するかどうか

+1

32ビットアプリケーションでは、64ビットアプリケーションよりコアの使用量が少なくて済みます。わからない場合は、デバッガを使用します。デバッガの[スレッド]ウィンドウが適切です。技術的には、[並行性アナライザ](https://msdn.microsoft.com/en-us/library/dd537632.aspx)で効果的に使用されるコアの数は、複数のスレッドが同時に複数のコアを使用する。スレッドはコードをスレッドセーフに保つために互いにロックする習慣があります。タスクマネージャは単純な傾向があります。 –

+0

ありがとうHans。並行処理アナライザを使用して試してみます。どうもありがとう。 – Vivek

+0

@HansPassantもう1つ確認していただけますか? 64ビットプロセスにはこのような制限はありません。使用可能なすべてのCPUを同時に使用できます。 – Vivek

答えて

2

32/64-bitは、仮想メモリのアドレス指定にアプリケーションが使用するビット数です。アプリケーションが使用するコア数は、その数から完全に独立しています。

通常、アプリケーションはアクティブなスレッドを持つものと同じ数の使用可能なコアを使用します(Hans Passantは正しく指摘しているため、他のスレッド、IOなどを待っているスレッドがブロックされる可能性があります。いずれのコアについても)。

タスクマネージャでプロセスのCPU使用率を確認するだけです。プロセスがCPUの100%/number_of_cores未満を使用すると、効果的にシングルスレッドになります。より多くを利用するなら、それは複数のコアで動作することを意味します。あなたの目的は、マルチスレッド技術を適切に使用して、利用可能なCPUの100%を利用させることです(32ビット版の問題とは関係ありません)。

関連する問題