Existe uma maneira de ver a frequência atual da CPU no macOS a partir do terminal (não o dispositivo de energia Intel)

14

Estou ciente destas respostas:

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

Exibir o relógio atual Velocidade de uma CPU no OS X?

Quais referem-se a Intel Power Gadgetuma maneira de obter a frequência atual da CPU, existe um programa / método para obter essas informações do terminal?

sysctl hw.cpufrequencymostra apenas a frequência nominal da CPU, ou seja, o que o fabricante declarou. Ele não considera o Turbo Boost ou frequências mais baixas quando a CPU está ociosa. (Por exemplo, se a CPU for i5, 1.4GHz, ela sempre indicará 1.4GHz)

A Csolução fornecida SO SO sysctl.htem o mesmo efeito.

amanhecer
fonte
As respostas por trás do link StackOverflow contêm uma resposta baseada em terminal. Você pode descrever como isso não funciona para você?
nohillside
Todas as soluções de SO mostrar somente a frequência da CPU nominal, isso não muda de acordo com a frequência real, e não se correlaciona com Power Gadget
amanusk
Pelo que entendi, a "frequência" é calculada com base em vários fatores. Não há uma "sonda" conectada à CPU para medir em tempo real qual é a frequência realmente.
Allan
1
Se funcionar no Linux, seria uma opção olhar o código fonte lá?
Nohillside

Respostas:

4

Como o seu comentário menciona que você realmente está apenas focado em ativar o Terminal (ou mais precisamente, não na área de trabalho) ...

Acho que o Intel Power Gadget ajudará você a obter suas informações no Terminal. Da Intel :

O Intel® Power Gadget também fornece uma interface de programação de aplicativos (API) C / C ++ para acessar esses dados de potência e frequência no seu programa; a API é suportada no Windows e Mac OS X. Para obter mais informações sobre as APIs, consulte:

E nessa mesma página, também um link para Usando a API do Intel Power Gadget no Mac OS X

Desculpe, este não é um link para uma solução pronta para uso; Passei alguns minutos com o google para ver se encontrava alguém que já fez isso sem sorte.

webmarc
fonte
1
Esta é a melhor resposta até agora. Eu esperava que houvesse uma maneira de obter informações de frequência sem a instalação de software externo (com algo parecido sysctl) ou usando software de código aberto.
amanusk 3/07
2

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

topexibir e atualizar informações classificadas sobre processos
-Fnão calcula estatísticas em bibliotecas compartilhadas (estruturas)
-n0exibe zero processos (porque não estamos interessados ​​nelas)
-s3atualizar a cada 3 segundos (o padrão é 1)
grepmostra apenas a linha que contém a frase uso da CPU

Saída de exemplo:

$ 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

Você pode até analisar a saída para exibição em outro lugar.

Esteja ciente de que consome topmuitos recursos enquanto está em execução.

Edit: Ah, você quer frequência. Eu sei que iStat Menustem que instalar um ajudante para obter essas informações em tempo real.

Matt Sephton
fonte
2
De fato, a frequência é a questão, top e htop não fornecem isso infelizmente.
amanusk 5/07
2

Eu tenho que pensar que isso é um pouco de uma pergunta XY em que "O que você vai fazer depois de obter esse número?" e quer responder diretamente, mas vamos mergulhar um pouco no que você está tentando medir. As interrupções de CPU no macOS são modeladas em intervalos de 150 ms e muitos desses detalhes são públicos na WWDC 2013 e, posteriormente, no gerenciamento de energia, App Nap (a Sessão 209 é particularmente boa e acessível ) e otimizações de duração da bateria no macOS.

timer coalescing - economia de energia em uma escala de tempo de 150 ms no macOS da sessão da WWDC 2013 209

Como o código e cada núcleo de uma CPU podem e irão mudar centenas de vezes por segundo com base em fatores de carga efêmeros, otimizações de energia que consideram o que é visível na tela, quais dados de rede chegam, a ideia de que uma CPU moderna possui um "comum" "a freqüência do relógio em qualquer momento parece simplificar demais a realidade . Com 8 núcleos em muitos MacBook Pro e dezenas de núcleos no iMac Pro - você está resumindo uma tonelada de complexidade a um número.

Os aumentos quando um único núcleo pode exceder o clock são menos prováveis ​​de serem medidos com facilidade, mas você pode medir a otimização térmica de maneira muito simples com o registro térmico de pmset.

pmset -g therm

Obviamente, é possível registrar as alterações espontâneas na otimização térmica da CPU pmset -g thermloge, em seguida, mapear isso nas especificações da CPU, se você puder reuni-las em outro local.

bmike
fonte
Uma opção para obter uma frequência por núcleo também é bem-vinda :). A frequência pode mudar muitas vezes por segundo, mas uma amostra desse segundo provavelmente seria suficiente, por exemplo, se você quiser saber a frequência no modo inativo ou no Turbo total (como em um teste de estresse). Determinar a potência e a temperatura é realmente possível (embora não seja direto) lendo as teclas SMC, eu esperava que houvesse uma tecla SMC para frequência também. O fato é que existem softwares que obtêm essas informações (dispositivo de energia Intel), a questão é como fazer isso sem um software extra.
amanusk