Программно получать текущую частоту процессора [дубликат]

Я только что научился правильно использовать спецификатор формата G. См. Документацию MSDN . Существует небольшая заметка, указывающая, что конечные нули будут сохраняться для десятичных типов, если не задана точность. Почему они это сделают, я не знаю, но указание максимального количества цифр для нашей точности должно исправить эту проблему. Поэтому для форматирования десятичных знаков наилучшим вариантом является G29.

decimal test = 20.5000m;
test.ToString("G"); // outputs 20.5000 like the documentation says it should
test.ToString("G29"); // outputs 20.5 which is exactly what we want

22
задан michael 11 June 2010 в 08:45
поделиться

3 ответа

Чтобы иметь частоту на Android, просто прочитайте эти специальные файлы в каталоге / sys:

#cat "/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq"
#cat "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq"
#cat "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq"

У вас будет ток, мин и макс. Разрешена частота.

40
ответ дан Ellis 20 August 2018 в 22:27
поделиться
  • 1
    Удивительный ответ Эллис, ты мне очень помог. Одна вещь, которую я нашел в исследовании этого, заключалась в том, что scaling_cur_freq не обязательно является текущей частотой процессора, а скорее тем, что ядро ​​думает о частоте. Чтобы получить реальную частоту, вам нужен root-доступ для чтения cpuinfo_cur_freq. Кроме того, получение root-доступа позволяет вам установить скорость процессора, что весьма полезно для профилирования в условиях наилучшего / худшего случая. – JonnyBoy 25 May 2012 в 20:01
  • 2
    Hummm Мне кажется, что даже с доступом root вы не можете редактировать файлы cpuinfo_ *. – JohnTortugo 30 January 2014 в 20:49
  • 3
    Как мы можем получить загрузку или использование процессора? – Ashkan 28 June 2015 в 19:54

Если вас интересует, сколько времени ваша система провела в каком состоянии, проверьте файл

/sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state

Я не уверен, нужен ли для этого корневой доступ.

3
ответ дан Michael Kopp 20 August 2018 в 22:27
поделиться
  • 1
    Корневой доступ кажется не обязательным, в отличие от cpuinfo_cur_freq. – Vi. 8 October 2013 в 18:23

не МГц, но, по крайней мере, что-то. Значение bogoMIPS может быть вам полезно.

private String ReadCPUinfo()
 {
  ProcessBuilder cmd;
  String result="";

  try{
   String[] args = {"/system/bin/cat", "/proc/cpuinfo"};
   cmd = new ProcessBuilder(args);

   Process process = cmd.start();
   InputStream in = process.getInputStream();
   byte[] re = new byte[1024];
   while(in.read(re) != -1){
    System.out.println(new String(re));
    result = result + new String(re);
   }
   in.close();
  } catch(IOException ex){
   ex.printStackTrace();
  }
  return result;
 }
7
ответ дан zed_0xff 20 August 2018 в 22:27
поделиться
  • 1
    Спасибо, но есть ли способ конвертировать его в МГц или читать где-нибудь? – michael 11 June 2010 в 17:18
  • 2
    По какой причине вы не просто открываете / proc / cpuinfo в качестве файла и читаете его напрямую? – fadden 12 June 2010 в 00:38
  • 3
    Майкл, прочитайте страницу wiki о bogoMIPS, есть формула. fadden, я не уверен, что файл можно просто прочитать из java, просто нашел этот код. – zed_0xff 12 June 2010 в 14:22
Другие вопросы по тегам:

Похожие вопросы: