Вопрос по c, windows – ПОЛУЧИТЬ использование процессора в c

1

Как я могу получить процесс использования процессора в C ??

Мне нужно использование процессора всеми процессами и потоками.

пожалуйста, дайте мне пример.

Спасибо!

Возможно, у меня есть еще одна разработка, которая, у меня есть вопрос, сколько у вас процессоров на компьютере? а у тебя есть linux или windows? JMBise
Вы не можете сделать это в стандартном C. Вам нужно использовать специфичные для реализации библиотеки. Поскольку вы включили тег Windows, вы имеете в виду, что вы хотите использовать Windows API, а не просто "C"? David Heffernan
Я могу использовать Windows API Ali Kiani
Вы можете быть заинтересованы вperformance counters. Some programmer dude

Ваш Ответ

2   ответа
3

В С,total CPU usage можно определить с помощьюСчетчики производительности (в примере кода есть небольшая опечатка:sleep должен быть изменен наSleep).

В C ++, C #, Delphi и т. Д. Я бы рекомендовал использоватьWMI.

== EDIT ==

Я нашел подход, чтобы получитьper-process CPU usage, Например, чтобы получить загрузку ЦП Microsoft Outlook, измените путь счетчика в приведенном выше примере на следующий:

PdhAddCounter(query, TEXT("\\Process(OUTLOOK)\\% Processor Time"), 0, &counter);

Если у вас есть несколько экземпляров одного исполняемого файла, вы можете использоватьиндексы. Этот пример MSDN тоже очень полезно.

Ссылка наperformance counters кажется мертвым, если это возможно ссылка наdocs.microsoft.com/en-au/windows/desktop/PerfCtrs/… вместо?
2

На простом C это невозможно, но поскольку вопрос также помечен как «Windows»:

Загрузка процессора - это время процессора, деленное на реальное время.GetThreadTimes а такжеGetProcessTimes функции предоставляют вам эту информацию (среди других функций, таких как счетчики производительности, о которых упоминал Йоахим Пилеборг, но я думаю, что эта, вероятно, проще).

Вы, вероятно, также хотите использоватьCreateToolhelp32Snapshot Сначала узнать, какие процессы и потоки существуют вообще. Вам нужно будет перевести идентификаторы потоков / процессов в дескрипторы, но я полагаю, что это не будет большим препятствием (т.е.OpenProcess).

Похожие вопросы