Получение текущего использования процессора в c ++ / windows для определенного процесса

Я хочу рассчитать текущее использование процессора для конкретного приложения в моем коде. Я посмотрел в Интернете и нашел библиотеку pdh для Windows. Когда я попробовал это, я получаю общее использование процессора, а не использование процессора для одного процесса.

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

Итак, что я делаю с этой строкой, чтобы получить использование процессора для конкретного процесса? Я пытался заменить _Всего с именем процесса (проводник). В то время я получаю 0 процессор. Но я проверил в мониторе ресурсов, что одновременное открытие многих окон увеличивает загрузку процессора до 20%. Все еще в журнале использования процессора показывает 0.

Кто-нибудь может мне с этим помочь?

заранее спасибо.

1

Решение

Вам нужно использовать GetProcessTimes

И, к сожалению, он не даст вам «загрузку процессора», он даст вам количество процессорного времени с момента запуска процесса. Таким образом, чтобы получить нагрузку на процессор, вам нужно будет взять один образец, сохранить его, а затем взять другой образец через известное время, а затем рассчитать время (и если вы хотите узнать общее использование, вам нужно добавить usertime а также kerneltime вместе, конечно).

3

Другие решения

Ты можешь проверить этот например. Объяснил все в этом проекте. Это даст память на основе идентификатора процесса (так же, как показано в диспетчере задач)

Спасибо,
Даршан

-2

По вопросам рекламы [email protected]