C'è un modo per vedere l'attuale frequenza della CPU in macOS dal terminale (non gadget di potenza Intel)


14

Sono a conoscenza di queste risposte:

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

Visualizza l'attuale velocità di clock di una CPU in OS X?

Quale riferimento a Intel Power Gadgetcome un modo per ottenere la frequenza corrente della CPU, esiste un programma / metodo per ottenere queste informazioni dal terminale?

sysctl hw.cpufrequencymostra solo la frequenza nominale della CPU, ovvero ciò che il produttore ha dichiarato. Non considera Turbo Boost o frequenze più basse quando la CPU è inattiva. (Ad esempio, se la CPU è i5, 1,4 GHz, indicherà sempre 1,4 GHz)

La Csoluzione data SO utilizzando sysctl.hha lo stesso effetto.


Le risposte dietro il collegamento StackOverflow contengono una risposta basata sul terminale. Puoi descrivere come questo non funziona per te?
Nohillside

Tutte le soluzioni su SO mostrano solo la frequenza nominale della CPU, non cambia in base alla frequenza effettiva e non è correlata a Power Gadget
amanusk,


Da quanto ho capito, la "frequenza" è calcolata sulla base di una serie di fattori. Non esiste una "sonda" collegata alla CPU per misurare in tempo reale quale sia la frequenza.
Allan,

1
Se funziona su Linux, sarebbe un'opzione per guardare lì il codice sorgente?
Nohillside

Risposte:


4

Dal momento che il tuo commento menziona che sei davvero focalizzato sull'abilitazione di Terminal (o più precisamente non desktop) ...

Penso che il gadget Intel Power ti aiuterà a ottenere le tue informazioni dal terminale. Da Intel :

Intel® Power Gadget fornisce anche un'API (Application Programming Interface) C / C ++ per accedere a questi dati di potenza e frequenza nel programma; l'API è supportata su Windows e Mac OS X. Per ulteriori informazioni sulle API, vedere:

E su quella stessa pagina, anche un collegamento all'utilizzo dell'API Intel Power Gadget su Mac OS X.

Spiacenti, questo non è un collegamento a una soluzione pronta all'uso; Ho trascorso alcuni minuti con Google per vedere se riuscivo a trovare qualcuno che lo avesse già fatto senza fortuna.


1
Questa è la risposta migliore finora. Speravo che ci fosse un modo per ottenere informazioni sulla frequenza senza l'installazione di software esterno (con qualcosa del genere sysctl) o usando software open source.
amanusk,

2

Provare top -F -n0 -s3 | grep "CPU usage"

topvisualizza e aggiorna le informazioni ordinate sui processi
-Fnon calcola le statistiche sulle librerie condivise (framework)
-n0visualizza zero processi (perché non ci interessa) l'
-s3aggiornamento ogni 3 secondi (il valore predefinito è 1)
grepci mostra solo la riga contenente la frase utilizzo CPU

Esempio di output:

$ 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

È anche possibile analizzare l'output per la visualizzazione altrove.

Essere consapevoli del fatto che toprichiede molte risorse mentre è in esecuzione.

Modifica: Ah, vuoi la frequenza. So che iStat Menusdeve installare un aiuto per ottenere queste informazioni in tempo reale.


2
In effetti la frequenza è il problema, top e htop non lo forniscono purtroppo.
amanusk,

2

Devo pensare che questo sia un po 'una domanda XY in quanto "Cosa farai una volta ottenuto questo numero?" e vuoi rispondere direttamente, ma immergiamoci un po 'in ciò che stai cercando di misurare. Gli interruzioni della CPU su macOS sono modellati a intervalli di 150 ms e gran parte di questi dettagli sono pubblici dal WWDC 2013 e successivamente sulla gestione dell'alimentazione, App Nap ( Session 209 in particolare è sia buona che accessibile ) e ottimizzazioni della durata della batteria su macOS.

coalescenza temporizzata - risparmio energetico su una scala temporale di 150 ms su macOS dalla sessione 209 del WWDC 2013

Poiché il codice e ciascun core di una CPU possono e cambieranno centinaia di volte al secondo in base a fattori di carico effimeri, ottimizzazioni di potenza che considerano ciò che è visibile sullo schermo, quali dati di rete arrivano, l' idea che una CPU moderna abbia anche un "comune" "la frequenza di clock in qualsiasi momento sembra semplificare enormemente la realtà . Con 8 core su molti MacBook Pro e dozzine di core su iMac Pro, stai bollendo una tonnellata di complessità fino a un numero.

I potenziamenti quando un singolo core può cronometrare hanno meno probabilità di essere facilmente misurati, ma è possibile misurare la limitazione termica molto semplicemente con la registrazione termica di pmset.

pmset -g therm

Puoi ovviamente registrare le modifiche spontanee al throttling termico della CPU pmset -g thermloge quindi mapparle alle specifiche della CPU se le puoi raccogliere altrove.


Anche un'opzione per ottenere una frequenza per core è benvenuta :). La frequenza può cambiare molte volte al secondo, ma un campione di quel secondo sarebbe molto probabilmente sufficiente, ad esempio, se si desidera conoscere la frequenza al minimo o in modalità Turbo completa (come in uno stress test). Determinare potenza e temperatura è effettivamente possibile (anche se non direttamente) leggendo i tasti SMC, speravo che ci fosse anche un tasto SMC per la frequenza. Il fatto è che esiste un software che ottiene queste informazioni (gadget Intel Power), la domanda è come si può fare questo senza software aggiuntivo.
amanusk,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.