Existe-t-il un moyen de voir la fréquence actuelle du processeur dans macOS à partir du terminal (pas le gadget d'alimentation Intel)


14

Je connais ces réponses:

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

Afficher la vitesse d'horloge actuelle d'un processeur sous OS X?

Qui se réfère à Intel Power Gadgetun moyen d'obtenir la fréquence actuelle du processeur, existe-t-il un programme / une méthode pour obtenir ces informations du terminal?

sysctl hw.cpufrequencyne montre que la fréquence nominale du CPU, c'est-à-dire ce que le fabricant a déclaré. Il ne prend pas en compte Turbo Boost ou les fréquences inférieures lorsque le processeur est inactif. (Par exemple, si le processeur est i5, 1,4 GHz, il indiquera toujours 1,4 GHz)

La Csolution qui lui est donnée en utilisant SO sysctl.ha le même effet.


Les réponses derrière le lien StackOverflow contiennent une réponse basée sur un terminal. Pouvez-vous décrire comment cela ne fonctionne pas pour vous?
nohillside

Toutes les solutions sur SO affichent uniquement la fréquence nominale du processeur, elle ne change pas en fonction de la fréquence réelle et ne correspond pas à Power Gadget
amanusk


D'après ce que je comprends, la "fréquence" est calculée en fonction d'un certain nombre de facteurs. Il n'y a pas de "sonde" connectée au CPU pour mesurer en temps réel ce qu'est réellement la fréquence.
Allan

1
Si cela fonctionne sous Linux, serait-ce une option pour y regarder le code source?
nohillside

Réponses:


4

Puisque votre commentaire mentionne que vous êtes vraiment concentré sur l'activation de Terminal (ou plus précisément pas sur le bureau) ...

Je pense que le Intel Power Gadget vous aidera à obtenir vos informations de Terminal. D' Intel :

Intel® Power Gadget fournit également une interface de programmation d'application (API) C / C ++ pour accéder à ces données de puissance et de fréquence dans votre programme; l'API est prise en charge sous Windows et Mac OS X. Pour plus d'informations sur les API, voir:

Et sur cette même page, également un lien vers Utilisation de l'API Intel Power Gadget sur Mac OS X

Désolé, ce n'est pas un lien vers une solution prête à l'emploi; J'ai passé quelques minutes avec google pour voir si je pouvais trouver quelqu'un qui l'avait déjà fait sans chance.


1
C'est la meilleure réponse jusqu'à présent. J'espérais qu'il existe un moyen d'obtenir des informations sur la fréquence sans installer de logiciel externe (avec quelque chose comme sysctl), ou en utilisant un logiciel open source.
amanusk

2

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

topafficher et mettre à jour les informations triées sur les processus
-Fne pas calculer les statistiques sur les bibliothèques partagées (frameworks)
-n0afficher les processus zéro (car cela ne nous intéresse pas)
-s3mettre à jour toutes les 3 secondes (la valeur par défaut est 1)
grepnous montre uniquement la ligne contenant la phrase utilisation du processeur

Exemple de sortie:

$ 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

Vous pouvez même analyser la sortie pour l'afficher ailleurs.

Sachez que cela consomme topbeaucoup de ressources pendant son fonctionnement.

Edit: Ah, vous voulez de la fréquence. Je sais qu'il iStat Menusfaut installer un assistant pour obtenir ces informations en temps réel.


2
En effet la fréquence est le problème, top et htop ne le proposent malheureusement pas.
amanusk

2

Je dois penser que c'est un peu une question XY dans la mesure où "qu'est-ce que tu vas faire une fois que tu auras ce numéro?" et nous voulons y répondre directement, mais plongeons un peu dans ce que vous essayez de mesurer. Les interruptions du processeur sur macOS sont formées à des intervalles de 150 ms et une grande partie de ce détail est publique à partir de la WWDC 2013 et plus tard sur la gestion de l'alimentation, App Nap (la session 209 en particulier est à la fois bonne et accessible ) et les optimisations de la durée de vie de la batterie sur macOS.

temporisation coalescente - économies d'énergie sur une échelle de temps de 150 ms sur macOS à partir de la session 209 de la WWDC 2013

Étant donné que le code et chaque cœur d'un processeur peuvent et vont changer des centaines de fois par seconde en fonction des facteurs de charge éphémères, des optimisations de puissance qui tiennent compte de ce qui est visible à l'écran, des données réseau qui arrivent, de l' idée qu'un processeur moderne en a même un "commun" "La fréquence d'horloge à un moment donné semble simplifier considérablement la réalité . Avec 8 cœurs sur de nombreux MacBook Pro et des dizaines de cœurs sur l'iMac Pro, vous obtenez une tonne de complexité en un seul chiffre.

Les augmentations lorsqu'un seul cœur peut fonctionner sur une fréquence d'horloge sont moins susceptibles d'être facilement mesurées, mais vous pouvez mesurer l'étranglement thermique très simplement avec l'enregistrement thermique de pmset.

pmset -g therm

Vous pouvez bien sûr enregistrer les modifications spontanées de la limitation thermique du CPU avec pmset -g thermlog, puis les mapper aux spécifications du CPU si vous pouvez les rassembler ailleurs.


Une option pour obtenir une fréquence par cœur est également la bienvenue :). La fréquence peut changer plusieurs fois par seconde, mais un échantillon de cette seconde serait probablement suffisant, par exemple, si vous voulez connaître la fréquence au ralenti ou en plein Turbo (comme dans un test de stress). La détermination de la puissance et de la température est en fait possible (bien que pas simple) en lisant les clés SMC, j'espérais qu'il existe également une clé SMC pour la fréquence. Le fait est qu'il existe un logiciel qui obtient ces informations (gadget d'alimentation Intel), la question est de savoir comment faire cela sans logiciel supplémentaire.
amanusk
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.