| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Программирование под Unix/Linux > Узнать загрузку CPU по PID |
| Автор: Vit 17.1.2005, 19:03 |
| Как? Нужна цифирь на подобии той которую выдаёт top |
| Автор: dargaard 18.1.2005, 03:35 |
| Можно посмотреть в /proc/nomer/status и пропарсить. |
| Автор: Vit 18.1.2005, 05:15 | ||
Пример конкретней можно? Какую цифирь по номеру взять и как её до божеского вида довести? |
| Автор: dargaard 18.1.2005, 09:21 | ||
| В обшем после нескольких часов (самому стало интерсно в /proc/pid/stat поля 14 и 15 отвечают за юзерное и системное время выполнения процесса. Чтоб получить какую нить статистику по загруженности компа надо хоть немного замерить его - т.е. надо просмотреть фаил хотя бы в течении некоторого времени. Раз в секунду максимум поля могут изменится на 100 единиц. Вот пример проги: пробовал на разных загруженностях и сравнивал с top-ом. вроде почти всегда совпадает. Писалось на скорую руку, абы работало, так что сильно не пеняйте (там нет никаких проверок на то что процесс который мы мониторим умер, и т.д.) Так как проверял я раз в секунду то не начто делить полученный результат не надо было. Если проверить фаил раз в 0.5 секунд соответсвенно dff1, diff2 надо поделить на 2, и т.д.
Дополнительную инфу можно наити в man proc P.S. Будет работать не на всех системах (например на солярисе не пашет - там довольно другая система). При большом желании можно посмотреть исходники top-a |
| Автор: Vit 18.1.2005, 14:49 |
| Спасибо |