パフォーマンスカウンタのスケールを用いた例(C言語)
説明:
ローカルマシン上で起動されているメモ帳のCPU使用率を10秒間計測する。計測の結果は、使用率を100倍した値を表す整数なので、これを100で割ることにより小数点2桁までの値を表示することができる。
キーワード:
PdhOpenQuery, PdhAddCounter, PdhSetCounterScaleFactor, PdhCollectQueryData, PdhGetFormattedCounterValue, PdhCloseQuery
サンプルコード:
/* メモ帳のCPU使用率を表示 */
void TestPerfScale()
{
HQUERY hQuery;
HCOUNTER hCounter;
PDH_FMT_COUNTERVALUE FmtValue;
/* 新規クエリーを作成 */
PdhOpenQuery(NULL, 0, &hQuery);
/* 既に起動しているメモ帳のCPU使用率のカウンタをクエリーに追加 */
PdhAddCounter(hQuery, "\\Process(notepad#0)\\% Processor Time", 0, &hCounter);
/* スケールを100倍にしておく */
PdhSetCounterScaleFactor(hCounter, 2);
/* 計測 */
printf("計測開始...\n");
PdhCollectQueryData(hQuery);
Sleep(10000); /* 十秒間待つ */
PdhCollectQueryData(hQuery);
printf("計測終了.\n");
/* 今の十秒間での、メモ帳のCPUの使用率を表示 */
PdhGetFormattedCounterValue(hCounter, PDH_FMT_LONG, NULL, &FmtValue);
printf("メモ帳のCPU使用率: %.02f%%\n", FmtValue.longValue/100.);
/* 終了 */
PdhCloseQuery(hQuery);
}
(original text:1999/01/05 更新)
本ドキュメントの内容は保証しません。本ドキュメントによって生じた結果について、一切の責任を負いません。