Je ne suis pas au courant d'une fonction d'API Win32 / Fonctions utilisée pour interroger la vitesse actuelle du processeur de PC local. Je souhaite ne pas utiliser WMI car il semble peu probable d'être réalisable sur tous les PC. P>
4 Réponses :
Une simple recherche Google m'a apporté à
Ces deux méthodes peuvent donner des vitesses d'horloge inexactes. La raison en est que toutes (dans) utilisent directement les instructions rdtsc code> dans le processeur qui confèrent des cycles "pseudo" plutôt que des cycles "réels".
La mise en œuvre de QueryPerformCounter n'est-elle pas normalement basée sur RDTSC de toute façon? La deuxième méthode semble plutôt redondante ....
Vous pouvez (généralement) obtenir la vitesse du processeur à l'aide de QueryPerformanceFréquence code> fonction. Je dis «généralement» car cette fonction renvoie la fréquence de la composante de minuterie de performance du système, mais pratiquement tous les CPU actuels disponibles fonctionnent à la même fréquence que le composant de la minuterie de performance. P>
Cette fonction est disponible depuis Windows 2000, de sorte que les chances sont bonnes qu'il est pris en charge sur la plupart des PC actuels. P>
"Pratiquement tous les CPU actuels disponibles fonctionnent à la même fréquence que le composant de la minuterie de performance." Documentation réclamations : "Dans de nombreux cas, QueryPerformanceFréquence renvoie la fréquence TSC divisée par 1024; et sur Hyper-V, la fréquence de contrôle de la performance est toujours de 10 MHz lorsque la machine virtuelle invitée exécute sous un hyperviseur qui implémente l'interface version 1.0 de l'hyperviseur." Il semble que le cas «divisé par 1024» est vrai pour mon système, en particulier. Donc cela ne semble pas trop fiable :(
Vous pouvez appeler la fonction de l'API Windows callntapowerinformation < / a> avec l'argument ProcessorInformation. Il renvoie un structure processor_power_information qui vous dit la vitesse du processeur actuelle et maximale de la CPU pour chacun des processeurs de votre système. P>
Ceci est uniquement pris en charge sur Win32 Desktop, pas de métro ou de téléphone Windows, cependant. P>
Salut sésame! Cette question est un peu vague, mais j'espère que quelqu'un puisse aider.
Quelles versions de Windows ciblez-vous? La disponibilité de WMI ne dépend que de la version de Windows utilisée, je pense ...
Il n'y a pas de fonction API pour le faire. Même WMI peut donner des valeurs inexactes pour la vitesse d'horloge du processeur. Le meilleur programme que je suis au courant pour obtenir la vitesse de l'horloge est CPuz.
Voici un lien, exemple utilise Perl - Search.cpan.org/~ Cjohnston / Win32-Systeminfo-0.11 / Systeminfo. PM
La vitesse de la CPU varie rapidement avec la charge de travail en cours, changeant potentiellement plusieurs fois par seconde: quel type de résolution à cette surveillance voulez-vous? Qu'est-ce qui vous fait penser que WMI ne fonctionnera pas sur certains PCS?
+1: bonne question; Cela semble non trivial de répondre à cela et je ne pouvais pas trouver une autre question ici qui demande la même chose.