Определение загрузки процессора в WinCE - PullRequest
3 голосов
/ 09 июня 2010

Я хочу получить текущее использование ЦП в программе на C ++, работающей под управлением Wince.

Я нашел эту ссылку , в которой указано, где находится исходный код, но я не могу найти его при установке моего сборщика платформ - я ожидаю, что это потому, что это не платформа Windows Automotive.

Кто-нибудь знает, где я могу найти этот исходный код, или (еще лучше) знает, как я могу получить эту информацию напрямую? то есть, какие DLL / вызовы функций должны выполняться и т. д.

Ответы [ 4 ]

5 голосов
/ 09 июня 2010

Поскольку GetProcessTimes не существует в CE, вы должны рассчитать это.

Вы должны начать с API-интерфейсов инструментов , чтобы перечислить процессы и потоки в процессах. Затем вы вызываете GetThreadTimes для каждого потока и складываете все это.

Имейте в виду, что вычисление этой информации повлияет на загрузку процессора.

1 голос
/ 08 марта 2014

Я обнаружил, что GetIdleTime (или CeGetIdleTimeEx на WEC7 или новее) хорошо работает для расчета использования процессора в масштабе всей системы.Пример кода для расчета процента времени простоя процессора показан на странице GetIdleTime MSDN .Очевидно, что процент загрузки процессора может быть рассчитан путем вычитания процента простоя из 100.

Страница MSDN предупреждает, что поддержка GetIdleTime зависит от реализации OAL.

0 голосов
/ 14 января 2014

Вы можете посмотреть в Remote Task Monitor . Это позволит вам получить текущую% загрузки ЦП вашего процесса (или потока), именно то, что вы ищете. Он также очень легкий, не сильно влияет на ваше устройство.

0 голосов
/ 16 ноября 2011

Обратите внимание, что при использовании API-интерфейсов инструментов для расчета загрузки ЦП необходимо выполнить два измерения, а затем рассчитать разницу.при этом вы не будете знать, сколько ЦП какие-либо потоки, которые были прерваны до второй выборки.

Таким образом, приложения, которые часто создают краткосрочные потоки, не будут должным образом представлены в вашем результате.

...