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.


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.


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.


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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.