現在のプロセスのパフォーマンスカウンター値(CPU使用率、各種メモリ使用量、他)の取得

解説

Windowsに付属するperfmon.exeで調べることのできるパフォーマンスカウンター値(CPU使用量、各種メモリ使用量、他)の現在のプロセスに関する値を取得する関数は、今のところ標準では用意されていない(ような)ので、自作します。

実装内容としては、

  1. PdhEnumObjectItems を用いて、インスタンスリストを取得します。
  2. インスタンスリストの各インスタンスに関して、プロセスIDを取得します。
  3. プロセスID値が、現在のプロセスのプロセスIDと一致するインスタンスを探すことで、現在のプロセスのインスタンス名を求めます。
  4. PdhMakeCounterPath を用いて、現在のプロセスのインスタンス名と各種カウンター名とから、カウンターパスを作成します。
  5. PdhCollectQueryData を用いて、作成したカウンターパスから、現在のプロセスのインスタンス名に関する各種パフォーマンスカウンター値を取得します。
  6. PdhGetFormattedCounterValue を用いて、取得したパフォーマンスカウンター値を必要な型の値に整形します。

サンプルコード

ダウンロード

ヘッダーファイルとソースファイル

サンプルプロジェクト