Comment obtenir l’utilisation du processeur en C?

Je souhaite obtenir l’utilisation totale du processeur pour une application en C, l’utilisation totale du processeur comme dans le Gestionnaire des tâches … Je souhaite savoir … pour windows et linux :: utilisation actuelle du processeur par tous les processus .. … comme on le voit dans le gestionnaire de tâches.

Ceci est spécifique à la plateforme:

  • Sous Windows, vous pouvez utiliser la fonction GetProcessTimes() .
  • Sous Linux, vous pouvez simplement utiliser clock() .

Celles-ci peuvent être utilisées pour mesurer la quantité de temps CPU prise entre deux intervalles de temps.

MODIFIER :

Pour obtenir la consommation CPU (en pourcentage), vous devez diviser le temps CPU total par le nombre de cœurs logiques visibles par le système d’exploitation, puis le temps total d’horloge murale:

 % CPU usage = (CPU time) / (# of cores) / (wall time) 

Obtenir le # de cœurs logiques est également spécifique à la plate-forme:

  • Windows: GetSystemInfo()
  • Linux: sysconf(_SC_NPROCESSORS_ONLN)

Sous POSIX, vous voulez le champ ru_utime de getrusage (2). Utilisez RUSAGE_SELF uniquement pour le processus appelant et RUSAGE_CHILDEN pour tous les enfants liés terminés et wait (2). Linux prend également en charge RUSAGE_THREAD uniquement pour le thread appelant. Utilisez ru_stime si vous voulez l’heure du système, que vous pouvez additionner avec ru_utime pour la durée totale en cours d’exécution (pas la durée du mur).

Il est généralement spécifique au système d’exploitation.

Vous pouvez utiliser la fonction clock , renvoyant un clock_t (un type entier, comme peut-être long ). Sur les systèmes Linux, il mesure le temps de calcul en microsecondes.

c’est exactement ce que je cherchais. En le manipulant à ma façon, je l’exécute avec succès.

Obtenir l’utilisation totale du processeur