2014-11-27 5 views
1

Мне нужно измерить энергопотребление одного из моих алгоритмов, и для этого я использую утилиту powertop. Тем не менее, я должен иметь возможность извлекать энергопотребление для моего конкретного процесса из списка, отображаемого интерактивной оболочкой в ​​предопределенные интервалы времени.Извлечение энергопотребления для конкретного процесса с помощью инструмента powertop ubuntu

Может кто-нибудь, пожалуйста, помогите мне с этой задачей ?.

Заранее спасибо.

+0

Пожалуйста, объясните больше. Почему бы вам просто не использовать что-то вроде: "powertop -d> my.log; grep my.log"? –

+0

Я пробовал grep, чтобы захватить желаемый процесс, но поскольку окно, отображающее результаты powertop, является интерактивной оболочкой, оно не дает результата, как вы ожидали бы с помощью команды типа «top». Кроме того, записи «powertop» периодически обновляются, и мне нужно постоянно получать данные, чтобы я мог рассчитать среднее энергопотребление процесса. Я не получаю эти непрерывные данные даже с помощью команды grep. – userDtrm

ответ

0

"powertop -d" не использует интерактивную оболочку, поэтому вы можете использовать ее с for, while или другой такой конструкцией bash.

Один из способов - сделать вашу программу программно в цикле в программе, которую вы пишете с помощью команды system().

Другой способ - сделать то же самое, но использовать оболочку bash для построения/while/until looping и передать ее в нужную вам команду. Вы можете написать свою специальную программу, если хотите выполнить сложный синтаксический анализ, например, «powertop -d | my_parsing_and_display_program». Если вы хотите простой синтаксический анализ, вы можете просто передать вывод в grep, awk или sed:

для i в 1 2; do powertop -d | sed -n '? bus/usb? п' ; done

Вы также можете заменить grep или awk вместо sed. (Да, я человек серого.)

 Смежные вопросы

  • Нет связанных вопросов^_^