2010-12-08 16 views
3

C++アプリケーションfoo.exe用のコードを記述しています。アプリケーションの内部では、そのアドレス空間の使用状況をログに記録します。だから私が見たいパフォーマンスカウンターは "\ Process(foo)\ Virtual Bytes"です。私が遭遇している問題は、システム上で実行されているfoo.exeのインスタンスが複数存在する可能性があることです。 perfmonでは、これらは "\ Process(foo#2)\ Virtual Bytes"として参照されていることがわかります。ここで、#2はプロセス数に応じて任意の数にすることができます。現在のプロセスのWindowsパフォーマンスカウンタを取得する方法

プロセスの複数のインスタンスが存在する場合を処理する現在のプロセスの仮想バイトを取得するために、カウンタパスを作成するにはどうすればよいですか?

答えて

4

インスタンスは、現在のプロセスIDと一致するカウンタ値がID Processであるインスタンスです。残念なことに、あなたのインスタンスを見つけるまですべてのインスタンスを取得して列挙する以外の方法はありませんが、これはかなり簡単です。

+1

常にIDプロセスの値がPIDと一致するように注意してください。ちょうどあなたが 'foo#2'だからこそ、' foo'が離れて 'foo#1'に変身するわけではありません! – Gabe

+1

@Gabe:インスタンスは「誕生」で名前が付けられていると思います。 'foo#2'で作成されると、プロセスが終了するまでその名前を変更することはできません。 –

+2

Remus:Perfmonを使用したことは私の経験ではありません。 – Gabe

関連する問題