Comment faire pour obtenir l'Utilisation de l'UC en C?
Je veux obtenir le total global d'utilisation de l'UC pour une application en C, le total de l'utilisation de l'UC comme nous obtenons dans le gestionnaire des tâches...
Je veux savoir ... pour windows et linux :: courant Total de l'utilisation de l'UC par tous les processus ..... comme nous pouvons le voir dans le gestionnaire des tâches.
- Ce système d'exploitation? Voulez-vous connaître la réponse pour votre processus ou pour une autre démarche?
- eh bien, dans Windows (7 pour être précis)... je veux savoir ... courant Total de l'utilisation de l'UC par tous les processus ..... comme nous pouvons le voir dans le gestionnaire des tâches ....
- Veuillez modifier la question pour tenir compte de cette nouvelle information.
Vous devez vous connecter pour publier un commentaire.
C'est une plate-forme spécifique:
GetProcessTimes()
fonction.clock()
.Ceux-ci peuvent être utilisés pour mesurer la quantité de temps CPU pris entre deux intervalles de temps.
EDIT :
Pour obtenir la consommation CPU (en pourcentage), vous devez diviser le total des temps de calcul par le nombre de noyaux logiques que le système d'exploitation voit, puis divisé par le total de l'horloge murale:
Obtenir le nombre de noyaux logiques est également une plate-forme spécifique:
GetSystemInfo()
sysconf(_SC_NPROCESSORS_ONLN)
Sous POSIX, vous voulez getrusage(2)'s ru_utime champ. Utilisation RUSAGE_SELF juste pour le processus appelant, et RUSAGE_CHILDEN pour tous les anciens et attendre(2)ed-sur les enfants. Linux prend également en charge RUSAGE_THREAD juste pour le thread appelant. Utilisation ru_stime si vous souhaitez que l'heure du système, qui peut être résumé avec ru_utime pour le temps total de l'actif (pas de mur de temps).
Il est généralement spécifique du système d'exploitation.
Vous pouvez utiliser le horloge de la fonction, retour d'un
clock_t
(certains de type entier, comme peut-êtrelong
). Sur les systèmes Linux, il mesure le temps de calcul en secondes.clock_t
est un arithmétique, donc il pourrait également êtredouble
oufloat
.c'est exactement ce que je cherchais. En les manipulant, à ma façon, je l'exécuter avec succès.
Obtenez totale d'utilisation de l'UC