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