Получение текущего использования процессора в C++/windows для определенного процесса
Я хочу рассчитать текущее использование процессора для конкретного приложения в моем коде. Я посмотрел в Интернете и нашел библиотеку pdh для Windows. Когда я попробовал это, я получаю общее использование процессора, а не использование процессора для одного процесса.
PdhAddCounter(hquery, TEXT("\\Processor(_Total)\\% Processor Time"),0,&counter);
Так что я делаю с этой строкой, чтобы получить использование процессора для конкретного процесса? Я попытался заменить _Total на имя процесса (проводник). В то время я получаю 0 процессор. Но я проверил в мониторе ресурсов, что одновременное открытие многих окон увеличивает загрузку процессора до 20%. По-прежнему в журнале использования процессора показывает 0.
Кто-нибудь может мне с этим помочь?
заранее спасибо.
2 ответа
Вы можете проверить это, например. Объяснил все в этом проекте. Это даст память на основе идентификатора процесса (так же, как показано в диспетчере задач)
Спасибо даршан
Вам нужно использовать GetProcessTimes
И, к сожалению, он не даст вам "загрузку процессора", он даст вам количество процессорного времени с момента запуска процесса. Таким образом, чтобы получить нагрузку на процессор, вам нужно будет взять один образец, сохранить его, а затем взять другой образец через известное время, а затем рассчитать время (и если вы хотите узнать общее использование, вам нужно добавить usertime
а также kerneltime
вместе, конечно).