Russian Qt Forum
Ноябрь 22, 2024, 14:42 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как узнать % загрузки CPU в Linux?  (Прочитано 39418 раз)
OS2
Самовар
**
Offline Offline

Сообщений: 186



Просмотр профиля WWW
« : Июль 20, 2012, 13:30 »

Всем доброго времени суток!

Собственно возникла необходимость програмно узнать % загрузки центрального процессора в Linux(SuSe).
Перерыл весь форум, но найти ответ(кратенький пример) не смог. Сам в Linux особо не разбираюсь, поэтому прошу знатоков данной OS помочь примерчиком....

Заранее спасибо!
Записан
DropNZ
Гость
« Ответ #1 : Июль 20, 2012, 15:21 »

top, uptime
например
top -b | grep Cpu
(us - занятость процессора пользовательскими программами, sy - системными)
Записан
OS2
Самовар
**
Offline Offline

Сообщений: 186



Просмотр профиля WWW
« Ответ #2 : Июль 20, 2012, 20:31 »

И как это реализовать програмно?  Непонимающий
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #3 : Июль 20, 2012, 20:50 »

Через парсинг /proc/stat
Записан
OS2
Самовар
**
Offline Offline

Сообщений: 186



Просмотр профиля WWW
« Ответ #4 : Июль 20, 2012, 21:02 »

Не понял...  Грустный
а примерчик можно?
Записан
OS2
Самовар
**
Offline Offline

Сообщений: 186



Просмотр профиля WWW
« Ответ #5 : Июль 20, 2012, 21:04 »

Наверное я не совсем понятно изложил суть вопроса: нужен платформенно-зависимый код на C\C++ для получения текущей загруженности CPU.  Подмигивающий
Записан
Fat-Zer
Гость
« Ответ #6 : Июль 20, 2012, 21:16 »

Наверное я не совсем понятно изложил суть вопроса: нужен платформенно-зависимый код на C\C++ для получения текущей загруженности CPU.  Подмигивающий
вот для чего людям исходники открыли!? смотри как это сделано в top'е тут тебе и «пример», и «как сделать»...
ЕМНИП там каждую секунду берётся статистика по всем процессам, а именно время, которое каждый из них провёл на процессоре, суммируется. затем просто смотрим какую ээто часть от секунды занимает... в чём время измеряется я не помню если честно.... статистика берётся ЕМНИП из /proc/<pid>

ЗЫ: /proc/stat — это не то скорей всего ­— там просто общая статистика с запуска системы.
ЗЗЫ: тема где-то тут уже была такая...
Записан
DropNZ
Гость
« Ответ #7 : Июль 21, 2012, 16:56 »

Наверное я не совсем понятно изложил суть вопроса: нужен платформенно-зависимый код на C\C++ для получения текущей загруженности CPU.  Подмигивающий
мне лень рыться по гуглу, но мне кажется, универсального решения нету, надо писать что-то типа
Код:
#ifdef  Q_OS_WIN32
        //вызов какой то winapi функции
#else
        //парсить что-нибудь
#endif
Записан
OKTA
Гость
« Ответ #8 : Июль 21, 2012, 17:04 »

чую фибрами души, что такого кода отродясь не было =D да и WIN32 с Linux врядли подружатся  Веселый

Парси вывод команд и будет тебе счастье!
Записан
DropNZ
Гость
« Ответ #9 : Июль 21, 2012, 17:11 »

чую фибрами души, что такого кода отродясь не было =D да и WIN32 с Linux врядли подружатся  Веселый

Парси вывод команд и будет тебе счастье!
Это да Улыбающийся Можно выполнить команду, получить вывод и с помощью regexp найти нужные значения
Записан
OS2
Самовар
**
Offline Offline

Сообщений: 186



Просмотр профиля WWW
« Ответ #10 : Июль 22, 2012, 11:09 »

Я с регулярными выражениями не знаком. Подсказать не можешь, как правильно распарсить вывод top'а, чтоб узнать текущую загрузку CPU?
Записан
OKTA
Гость
« Ответ #11 : Июль 22, 2012, 12:12 »

с RegExp лучше сам разбирайся, иначе никогда не разберешься) Регулярные выражения должен знать каждый!!  Крутой А если боишься, то парси вывод обычными методами QString  Показает язык
Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #12 : Июль 23, 2012, 08:19 »

Вот здесь http://www.hyperic.com/products/sigar/ кроссплатформенная реализация искомого.
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #13 : Июль 23, 2012, 17:20 »

Не понял...  Грустный

Читаешь документацию на файл /proc/stat, пишешь код который его открывает, читает значения, и вычисляет загрузку CPU. Примеров полно в гугле начиная от C и заканчивая bash с python.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.135 секунд. Запросов: 23.