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


19

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



3
@DavidPostill-最良の答えは、Process ExplorerのWebページを指しているだけです。私の質問は、与えられたプロセスエクスプローラーで、どのコアでプロセスが開始されているかを判断する方法ですか?
rory.ap

回答:


47

2005年にリクエスト:

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

応答なし。

2007年にリクエスト:

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

応答なし。

2013年に議論された同様のもの:

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

基本的な概要:できません。

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

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

ただし、指定しない場合、スレッドはOSとその下にある処理ハードウェアによって制御され、見られない速度でプロセッサ間をジャンプし、表示されるまでに不正確になる可能性が非常に高くなります。君は。

詳細については、SUのこれらの質問をご覧ください。

また、StackOverflowから:

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

これを使用すると、スレッドが次のサイクルまでどこにあるのかわからないので、スレッドによるプロセッサ使用量を推定することができます(再び、意図的にアフィニティを設定しない限り)。

詳細:


3
いい答え... :)
DavidPostill

@DavidPostill-同意しました。
rory.ap

特定の質問に答え、歴史と理由を把握し、概念を理解するのに役立つ素晴らしい答えです。
スミザーズ

1
LinuxとWindowsの両方で、スレッドごとにアフィニティを設定できます。ただし、これはめったに役に立たないため、めったに行われないため、汎用監視プログラムでスレッドごとのアフィニティを表示することは、多かれ少なかれ役に立たない-大多数は、必要に応じてカーネルをスケジュールするだけです。
ボブ

OSは、GetCurrentProcessorNumberが呼び出された直後(ただし、実行を開始する前)と戻った直後に、スレッドを別のプロセッサに切り替えることもできるため、呼び出し時のプロセッサでも、その時点のプロセッサでもありません呼び出しが戻ります!
gnasher729

8

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

ここに画像の説明を入力してください


いいね 各CPUで同じプロセスがリストされていますか(複数のCPUを使用している場合)?キャプチャされたxperfトレースを使用しているので、ライブレポートではないということですか?
Ƭᴇcʜιᴇ007

@Ƭᴇcʜιᴇ007ETWイベントは、実行時に消費することもできます。それらをETLファイルに書き込むことは、1つの方法にすぎません。はい、両方を使用する場合、両方のCPUの下でプロセスをリストします。
magicandre1981
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.