web-dev-qa-db-ja.com

プロセスが実行されているCPUを特定する

Sysinternalsのプロセスエクスプローラーを使用して、プロセスが実行されているCPUを示すために使用できる列はありますか?列がない場合、他の方法はありますか?

19
rory.ap

2005 でリクエストされました:

プロセスエクスプローラーに統合された機能に非常に感銘を受けましたが、メインウィンドウに各プロセスCPUアフィニティを列の切り替えとして表示するオプションを表示したいと考えています。

応答なし。

リクエスト 2007年

すばらしいユーティリティをありがとう。私の要求は、エクスプローラーを処理してCPUアフィニティを表示するための列オプションを追加することです。それでおしまい。

応答なし。

同様の議論 2013年

プロセスが実行されているコア全体の使用量の合計を表示するコア使用量と呼ばれる新しいプロセスパフォーマンスビュー列があったら、それは本当にすばらしいでしょう。

基本的なあらすじ:それはできません。

Threads は、プロセスではなく、処理のためにコアに送信されるものです。最近のほとんどのプロセスには複数のスレッドがあります。

プロセスに affinity を手動で設定した場合、プロセスのすべてのスレッドは単一のプロセッサに固執する必要があります。手動で設定したので、どのCPUがオンになっているかを知る必要があります。 ;)

しかし、指定しない場合、スレッドはOSと基盤となる処理ハードウェアによって制御され、監視できない速度でプロセッサ間を飛び回り、表示される時間までに不正確になる可能性が非常に高くなります。君は。

おそらく、これらのSUの質問で詳細を確認してください。

また、StackOverflowから:

ここでプログラムを作成した場合、 GetCurrentProcessorNumber を使用できます。これは、関数の呼び出し元のスレッドが使用している現在のプロセッサを報告します。

これを使用すると、スレッドが次のサイクルへのサイクルになる場所がわからないため、スレッドによるプロセッサの使用状況について見積もりを行うことができます(繰り返しますが、意図的にアフィニティを設定しない限り)。

より詳しい情報:

47

これは、xperfトレースをキャプチャし、Windows Performance Toolkitから Windows Performance Analyzer (WPA.exe)で開くことで実行できます。ここで、列CPUを追加して、プロセスのCPU(コア)を確認できます。が走っています:

enter image description here

8
magicandre1981