Czy istnieje sposób, aby zobaczyć aktualną częstotliwość procesora w macOS z terminala (nie gadżet mocy Intel)

14

Mam świadomość tych odpowiedzi:

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

Zobacz aktualną prędkość zegara procesora w OS X?

Które odnoszą się do Intel Power Gadgetsposobu uzyskania bieżącej częstotliwości procesora, czy istnieje program / metoda uzyskiwania tej informacji z terminala?

sysctl hw.cpufrequencypokazuje tylko częstotliwość nominalną procesora, tj. co podał producent. Nie bierze pod uwagę Turbo Boost ani niższych częstotliwości, gdy procesor jest bezczynny. (Na przykład, jeśli procesor to i5, 1,4 GHz, zawsze będzie miał stan 1,4 GHz)

CRozwiązanie podane jest więc przy użyciu sysctl.hten sam efekt.

amanusk
źródło
Odpowiedzi za łączem StackOverflow zawierają odpowiedź opartą na terminalu. Czy możesz opisać, jak to dla ciebie nie działa?
nohillside
Wszystkie rozwiązania w SO pokazują tylko nominalną częstotliwość procesora, nie zmienia się zgodnie z rzeczywistą częstotliwością i nie koreluje z
gadżetem
Z tego, co rozumiem, „częstotliwość” jest obliczana na podstawie wielu czynników. Do procesora nie jest podłączona „sonda” do pomiaru w czasie rzeczywistym częstotliwości.
Allan
1
Jeśli to działa w systemie Linux, czy byłoby opcją zajrzeć do kodu źródłowego?
nohillside

Odpowiedzi:

4

Ponieważ twój komentarz wspomina, że ​​tak naprawdę koncentrujesz się na włączeniu Terminalu (a dokładniej nie na pulpicie) ...

Myślę, że gadżet Intel Power pomoże ci uzyskać informacje z terminala. Od Intela :

Intel® Power Gadget zapewnia także interfejs programowania aplikacji C / C ++ (API) umożliwiający dostęp do danych dotyczących mocy i częstotliwości w twoim programie; interfejs API jest obsługiwany w systemach Windows i Mac OS X. Aby uzyskać więcej informacji na temat interfejsów API, zobacz:

Na tej samej stronie znajduje się również link do Korzystanie z interfejsu API Intel Power Gadget API w systemie Mac OS X.

Przepraszamy, to nie jest link do rozwiązania typu out-of-box; Spędziłem kilka minut z Google, aby sprawdzić, czy mogę znaleźć kogoś, kto już to zrobił bez powodzenia.

webmarc
źródło
1
To najlepsza jak dotąd odpowiedź. Miałem nadzieję, że istnieje sposób na uzyskanie informacji o częstotliwości bez instalowania zewnętrznego oprogramowania (z czymś takim sysctl) lub przy użyciu oprogramowania typu open source.
amanusk
2

Próbować top -F -n0 -s3 | grep "CPU usage"

topwyświetlaj i aktualizuj posortowane informacje o procesach
-Fnie obliczaj statystyk na bibliotekach współdzielonych (frameworkach)
-n0wyświetlaj zero procesów (ponieważ nie jesteśmy nimi zainteresowani)
-s3aktualizuj co 3 sekundy (domyślnie jest to 1)
greppokazuje nam tylko linię zawierającą wyrażenie użycie procesora

Przykładowe dane wyjściowe:

$ 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

Możesz nawet przeanalizować dane wyjściowe w celu wyświetlenia w innym miejscu.

Należy pamiętać, że podczas pracy topwymaga bardzo dużo zasobów.

Edycja: Ach, chcesz częstotliwości. Wiem, że muszę iStat Menuszainstalować pomocnika, aby uzyskać te informacje w czasie rzeczywistym.

Matt Sephton
źródło
2
Rzeczywiście częstotliwość jest problemem, top i htop nie zapewniają tego niestety.
amanusk
2

Muszę pomyśleć, że to trochę pytanie XY w tym „Co zamierzasz zrobić, kiedy dostaniesz ten numer?” i chcesz odpowiedzieć na to bezpośrednio, ale zagłębmy się w to, co próbujesz zmierzyć. Przerwania procesora w systemie macOS są kształtowane w odstępach 150 ms, a większość tych szczegółów jest publicznie dostępna w WWDC 2013, a później na temat zarządzania energią, App Nap ( w szczególności sesja 209 jest dobra i dostępna ) oraz optymalizacji żywotności baterii w macOS.

timing coalescing - oszczędność energii w skali czasu 150 ms na macOS z sesji WWDC 2013 209

Ponieważ kod i każdy rdzeń procesora mogą i będą zmieniać się setki razy na sekundę w oparciu o efemeryczne czynniki obciążenia, optymalizacje mocy uwzględniające to, co jest widoczne na ekranie, nadchodzące dane sieciowe, pomysł, że nowoczesny procesor ma nawet jeden „wspólny” „Częstotliwość taktowania w dowolnym momencie wydaje się znacznie nadmiernie upraszczać rzeczywistość . Z 8 rdzeniami na wielu MacBookach Pro i dziesiątkami rdzeni na iMacu Pro - gotujesz tonę złożoności do jednej liczby.

Doładowania, gdy pojedynczy rdzeń może być przekroczony taktowanie, są mniej prawdopodobne do łatwego zmierzenia, ale można bardzo łatwo zmierzyć dławienie termiczne za pomocą rejestrowania termicznego pmset.

pmset -g therm

Możesz oczywiście rejestrować spontaniczne zmiany termicznego dławienia procesora za pomocą, pmset -g thermloga następnie mapować to do specyfikacji procesora, jeśli możesz je zebrać gdzie indziej.

bmike
źródło
Mile widziana jest również opcja uzyskania częstotliwości na rdzeń :). Częstotliwość może zmieniać się wiele razy na sekundę, ale próbka tej sekundy najprawdopodobniej wystarczy, na przykład, jeśli chcesz poznać częstotliwość na biegu jałowym lub w pełnym Turbo (jak w teście wysiłkowym). Określenie mocy i temperatury jest w rzeczywistości możliwe (choć nie jest to proste) przez odczytanie kluczy SMC, miałem nadzieję, że istnieje również klucz SMC dla częstotliwości. Faktem jest, że istnieje oprogramowanie, które uzyskuje te informacje (gadżet Intel Power), pytanie brzmi, jak można to zrobić bez dodatkowego oprogramowania.
amanusk