Есть ли способ увидеть текущую частоту процессора в macOS с терминала (не гаджет питания Intel)

14

Я знаю об этих ответах:

/programming/9948987/detect-current-cpu-clock-speed-programmatically-on-os-x

Посмотреть текущую тактовую частоту процессора в OS X?

Что называется Intel Power Gadgetспособом получения текущей частоты процессора, существует ли программа / метод для получения этой информации из терминала?

sysctl hw.cpufrequencyпоказывает только номинальную частоту процессора, то есть то, что заявлено производителем. Он не учитывает Turbo Boost или более низкие частоты, когда процессор простаивает. (Например, если процессор i5, 1,4 ГГц, он всегда будет показывать 1,4 ГГц)

CРешение , данный его так , используя sysctl.hимеет тот же эффект.

amanusk
источник
Ответы за ссылкой StackOverflow содержат основанный на терминале ответ. Можете ли вы описать, как это не работает для вас?
холме
Все решения на SO показывают только номинальную частоту процессора, она не изменяется в соответствии с фактической частотой и не коррелирует с Power Gadget
amanusk
Связанный: stackoverflow.com/a/8353086/4703819
Аллан
Из того, что я понимаю, «частота» рассчитывается на основе ряда факторов. К ЦП не подключен «зонд» для измерения в реальном времени частоты.
Аллан
1
Если он работает в Linux, можно ли посмотреть исходный код?
Nohillside

Ответы:

4

Поскольку в вашем комментарии упоминается, что вы на самом деле просто сосредоточены на включении терминала (или, точнее, не на рабочем столе) ...

Я думаю, что Intel Power Gadget поможет вам получить информацию из терминала. От Intel :

Intel® Power Gadget также предоставляет интерфейс прикладного программирования C / C ++ (API) для доступа к данным о мощности и частоте в вашей программе; API поддерживается в Windows и Mac OS X. Для получения дополнительной информации об API см .:

И на той же странице, также ссылка на Использование Intel Power Gadget API в Mac OS X

Извините, это не ссылка на готовое решение; Я провел несколько минут с Google, чтобы посмотреть, смогу ли я найти кого-то, кто уже сделал это без удачи.

webmarc
источник
1
Это лучший ответ на данный момент. Я надеялся, что есть способ получить информацию о частоте без установки внешнего программного обеспечения (с чем-то вроде sysctl) или с помощью программного обеспечения с открытым исходным кодом.
amanusk
2

Пытаться top -F -n0 -s3 | grep "CPU usage"

topотображать и обновлять отсортированную информацию о процессах
-F, не вычислять статистику по разделяемым библиотекам (фреймворкам),
-n0отображать нулевые процессы (потому что они нам не интересны),
-s3обновлять каждые 3 секунды (по умолчанию 1)
grepпоказывает нам только строку, содержащую фразу использования ЦП

Пример вывода:

$ top -F -n0 -s3 | grep "CPU usage"
CPU usage: 9.36% user, 20.0% sys, 70.63% idle 
CPU usage: 8.35% user, 8.19% sys, 83.45% idle 
CPU usage: 8.18% user, 7.77% sys, 84.4% idle 
CPU usage: 5.89% user, 8.1% sys, 86.8% idle

Вы даже можете проанализировать вывод для отображения в другом месте.

Имейте в виду, что topэто очень ресурсоемкий, пока он работает.

Изменить: Ах, вы хотите частоту. Я знаю, iStat Menusчто должен установить помощника, чтобы получить эту информацию в режиме реального времени.

Мэтт Сефтон
источник
2
Действительно, частота - это проблема, к сожалению, top и htop этого не обеспечивают.
amanusk
2

Я должен думать, что это немного странный вопрос: «Что ты собираешься делать, когда получишь этот номер?» и хочу ответить на этот вопрос напрямую, но давайте немного углубимся в то, что вы пытаетесь измерить. Прерывания ЦП в macOS формируются с интервалами в 150 мс, и большая часть этих подробностей становится общедоступной с WWDC 2013 и более поздних версий по управлению питанием, App Nap ( в частности, сессия 209 хороша и доступна ), а также оптимизирует срок службы батареи в macOS.

объединение таймера - экономия энергии в течение 150 мс на macOS из сеанса WWDC 2013 209

Поскольку код и каждое ядро ​​ЦП могут и будут меняться сотни раз в секунду в зависимости от кратковременных коэффициентов нагрузки, оптимизации энергопотребления, учитывающей то, что видно на экране, какие сетевые данные поступают, идея о том, что современный ЦП даже имеет один «общий» «Частота тактирования в любой момент времени, кажется, сильно упрощает реальность . С 8 ядрами на многих MacBook Pro и десятками ядер на iMac Pro - вы сводите тонну сложности к одному числу.

Усиления, когда одно ядро ​​может работать на тактовой частоте, с меньшей вероятностью будет легко измерить, но вы можете очень просто измерить тепловое регулирование с помощью теплового каротажа pmset.

pmset -g therm

Конечно, вы можете регистрировать самопроизвольные изменения в тепловом дросселировании ЦП, pmset -g thermlogа затем сопоставлять их со спецификациями ЦП, если вы можете собрать их в другом месте.

bmike
источник
Возможность получить частоту для каждого ядра также приветствуется :). Частота может меняться много раз в секунду, но выборки из этой секунды, скорее всего, будет достаточно, например, если вы хотите узнать частоту на холостом ходу или в режиме полного турбо (как в стресс-тесте). Определение мощности и температуры на самом деле возможно (хотя и не прямо) путем чтения ключей SMC, я надеялся, что для частоты также есть ключ SMC. Дело в том, что есть программное обеспечение, которое получает эту информацию (Intel Power Gadget), вопрос в том, как это сделать без дополнительного программного обеспечения.
amanusk