2

コード内の特定のアプリケーションの現在の CPU 使用率を計算したいと考えています。インターネットで調べたところ、Windows用のpdhライブラリが見つかりました。試してみると、1 つのプロセスの CPU 使用率ではなく、全体的な CPU 使用率が表示されます。

PdhAddCounter(hquery, TEXT("\\Processor(_Total)\\% Processor Time"),0,&counter);

では、特定のプロセスの CPU 使用率を取得するには、この行をどうすればよいでしょうか? _Totalをプロセス名(explorer)に置き換えてみました。その時点で、CPU使用率が0になっています。しかし、一度に多くのウィンドウを開くとCPU使用率が最大20%増加することをリソースモニターで確認しました。まだログ ファイルの CPU 使用率は 0 を示しています。

誰でもこれで私を助けることができますか?

前もって感謝します。

4

2 に答える 2

3

使用する必要がありますGetProcessTimes

残念ながら、「CPU 使用率」は表示されません。プロセスが開始されてからの CPU 時間の量が表示されます。したがって、CPU 使用率を取得するには、1 つのサンプルを取得して保存し、既知の時間後に別のサンプルを取得して、時間を計算する必要があります (合計使用率を知りたい場合は、もちろん、usertimeと をkerneltime一緒に追加します)。

于 2013-08-07T06:56:52.020 に答える
-4

たとえば、これを確認できます。そのプロジェクトのすべてを説明しました。プロセスIDに基づいてメモリを提供します(タスクマネージャーに表示されるのと同じ方法)

ありがとう、ダルシャン

于 2014-07-31T05:42:56.643 に答える