Чи є спосіб бачити поточну частоту процесора в macOS з терміналу (не гаджет живлення Intel)


14

Мені відомі такі відповіді:

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

Переглянути поточну тактову частоту Швидкість ЦП в ОС X?

Які посилання називаються Intel Power Gadgetспособом отримання поточної частоти процесора, чи існує програма / метод отримання цієї інформації з терміналу?

sysctl hw.cpufrequencyпоказує лише номінальну частоту процесора, тобто те, що заявив виробник. Він не враховує Turbo Boost або нижчі частоти, коли процесор працює в режимі очікування. (Наприклад, якщо процесор i5, 1,4 ГГц, він завжди буде 1,4 ГГц)

Такий же ефект має і Cрозчин, що надається SO sysctl.hтаким чином.


Відповіді за посиланням StackOverflow містять відповідь на основі терміналу. Чи можете ви описати, як це не працює для вас?
nohillside

Усі рішення на SO показують лише номінальну частоту процесора, вона не змінюється відповідно до фактичної частоти і не співвідноситься з Power Gadget
amanusk


З того, що я розумію, "частота" обчислюється виходячи з ряду факторів. Немає «зонда», підключеного до процесора, щоб вимірювати в режимі реального часу, яка насправді частота.
Аллан

1
Якщо це працює на Linux, чи було б можливістю переглянути там вихідний код?
nohillside

Відповіді:


4

Оскільки у вашому коментарі зазначається, що ви дійсно просто зосереджені на включенні терміналу (а точніше, не на робочому столі) ...

Я думаю, що гаджет Intel Power допоможе вам отримати інформацію від Terminal. Від Intel :

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

І на цій самій сторінці також посилання на Використання Intel Power Gadget API на Mac OS X

Вибачте, це не посилання на нестандартне рішення; Я провів кілька хвилин з google, щоб перевірити, чи зможу я знайти когось, хто вже це зробив без удачі.


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
Дійсно, частота - це питання, топ і htop цього не забезпечують, на жаль.
amanusk

2

Я мушу подумати, що це трохи питання XY у тому, що "Що ти будеш робити, як тільки отримаєш цей номер?" і хочете відповісти на це безпосередньо, але давайте трохи зануримось у те, що ви намагаєтеся виміряти. Переривання процесора на 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а потім зіставити їх у специфікації CPU, якщо ви можете зібрати їх у іншому місці.


Важливий варіант отримання частоти на одне ядро ​​також вітається :). Частота може змінюватися багато разів на секунду, але, швидше за все, вибірки цієї секунди буде достатньо, наприклад, якщо ви хочете знати частоту на холостому ходу або в повному режимі Turbo (як у стрес-тесті). Визначити потужність і температуру насправді можливо (хоча і не прямо), прочитавши клавіші SMC, я сподівався, що також є частота SMC для частоти. Справа в тому, що є програмне забезпечення, яке отримує цю інформацію (гаджет живлення Intel), питання полягає в тому, як можна зробити це без додаткового програмного забезпечення.
амануск
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.