現在のプロセスのパフォーマンスカウンター値(CPU使用率、各種メモリ使用量、他)の取得
解説
Windowsに付属するperfmon.exeで調べることのできるパフォーマンスカウンター値(CPU使用量、各種メモリ使用量、他)の現在のプロセスに関する値を取得する関数は、今のところ標準では用意されていない(ような)ので、自作します。
実装内容としては、
- PdhEnumObjectItems を用いて、インスタンスリストを取得します。
- インスタンスリストの各インスタンスに関して、プロセスIDを取得します。
- プロセスID値が、現在のプロセスのプロセスIDと一致するインスタンスを探すことで、現在のプロセスのインスタンス名を求めます。
- PdhMakeCounterPath を用いて、現在のプロセスのインスタンス名と各種カウンター名とから、カウンターパスを作成します。
- PdhCollectQueryData を用いて、作成したカウンターパスから、現在のプロセスのインスタンス名に関する各種パフォーマンスカウンター値を取得します。
- PdhGetFormattedCounterValue を用いて、取得したパフォーマンスカウンター値を必要な型の値に整形します。