2014-12-27 2 views
1

В вопросе о «total cpu usage of an application from /proc/pid/stat» есть объяснение, как получить использование процессора, но для этого мы должны знать часы.Android количество часов тиков [Hertz]

Но как я могу получить это значение в Android (прямо с устройства)? Я просто не понимаю, как использовать следующую функцию в Android, потому что это, похоже, команда Linux.

Hertz (количество тактов в секунду) вашей системы. В большинстве случаев sysconf (_SC_CLK_TCK) может использоваться для возврата количества тактовых сигналов .

+2

[ 'sysconf (_SCK_CLK_TCK)'] (http://pubs.opengroup.org/ onlinepubs/009695399/functions/sysconf.html) - вызов функции C (т. е. он должен быть скомпилирован в используемой программе). Обозначение командной оболочки - это '' getconf CLK_TCK' (http://pubs.opengroup.org/onlinepubs/009695399/utilities/getconf.html). К сожалению, утилита ['getconf'] (http://pubs.opengroup.org/onlinepubs/009695399/utilities/getconf.html) отсутствует на Android. –

+0

Возможный дубликат [Что такое «Tick Tick» в контексте использования Android-процессора?] (Http://stackoverflow.com/questions/28292807/what-is-exactly-a-clock-tick-in-the -context-of-android-cpu-usage) –

ответ

1

Зная частоту процессора вашего устройства, вы должны рассчитать общее использование ЦП для приложения, как описано в сообщении, указанном в вашем вопросе. Вы можете получить информацию о текущей частоте процессора путем доступа к специфическим системным файлам, находящимся в каталоге /sys:

/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

Это скажет вам, что текущая частота процессора. Кроме того, можно определить максимальные и минимальные возможные частоты процессора путем считывания cpuinfo_max_freq и cpuinfo_min_freq файлов, соответственно:

/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq

+1

Ядро Linux (в котором работает Android) абстрагирует истинные тики аппаратных часов процессора. Значения, перечисленные в файлах Linux proc, масштабируются до частоты «псевдо-часов» через константу Linux 'USER_HZ'; этот 'USER_HZ' является значением« герц », которое должно использоваться. Значение в '/ sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq', скорее всего, не равно константе' USER_HZ'. –

+0

@VilhelmGray Действительно, спасибо за разъяснение. –

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