Я использую lscpu | grep 'MHz' для получения моей тактовой частоты. Я получаю разные результаты, основанные на методе, который я вызываю этой командой.
Метод 1: ввод его в терминал CPU MHz: 1200.000
Способ 2. Инкапсуляция в сценарий под названием test .sh Код сценария:
#! /bin/bash
cpu=$(lscpu | grep 'MHz')
echo $cpu
Затем в terminaL
$ chmod +x test.sh
$ ./test.sh
Выход: CPU MHz: 1200.000
So это так хорошо. Но теперь, метод 3: hiting «запустить или просмотреть текущий файл» в Geany на test.sh. Выход: CPU MHz: 2200.000
Способ 4: запись скрипта python под названием test.py, который вызывает test.sh. Код сценария Python:
#! /usr/bin/python
import subprocess
def test():
subprocess.call("./test.sh")
if __name__ == '__main__':
test()
Затем в терминале: $ python test.py
Выход: CPU MHz: 2200.000
I Я попробовал как python, так и python3. Оба дают тот же (ошибочный) результат.
Почему lscpu дает другой вывод, когда он запущен косвенно? И как я могу исправить это / обойти это? Что-то не так в моем коде? Для чего это стоит, я запускаю Ubuntu 13.10.
Спасибо :-).
Большинство современных процессоров могут регулировать свою тактовую частоту. Регулятор по умолчанию на linux является «по требованию», который поддерживает низкую тактовую частоту, чтобы экономить электроэнергию при работе на холостом ходу, и ускоряет ее работу при необходимости.
См. Https://www.kernel.org/ документ / Документация / CPU-FREQ / governors.txt