Comment utiliser psutil.get_cpu_percent()?
Comment exactement l'utilisation de la fonction get_cpu_percent()?
Mon code est:
SDKTestSuite.DijSDK_CalculateFps(int(timeForFPS),int(index),cameraName)
cpuUsage = process.get_cpu_percent()
Ici, je suis à l'appel d'une Fonction appelée SDKTestSuite.DijSDK_CalculateFps()
et je suis appelant get_cpu_percent()
pour obtenir l'utilisation de l'UC de cet appel. Je suis l'Appel de cette fonction pour des entrées différentes, Le résultat est parfois l'utilisation de l'UC donne 0.0%
qui n'est pas prévu.
Donc je Suis en utilisant le get_cpu_percent
dans la manière correcte? Comment exactement utiliser cette get_cpu_percent
fonction? Est-il un intervalle de paramètres varient ici?
Dans la définition de cette fonction, il dort juste pour l'intervalle donné et de comparer le temps de calcul, mais comment il calcule mes fonctionnalité d'appel ici?
OriginalL'auteur Bharathi | 2014-01-13
Vous devez vous connecter pour publier un commentaire.
Si vous lisez les docs,
psutil.cpu_percent
:Je suis sûr que ce n'est pas ce que vous voulez.
Tout d'abord, si vous voulez savoir l'utilisation de l'UC pendant un appel spécifique, vous devez soit (a) avant et après la fonction, ou (b) l'appeler à partir d'un autre thread ou processus qui s'exécute en parallèle avec l'appel, et pour le même temps que l'appel (par le passage d'un
interval
).Deuxième, si vous voulez savoir combien de temps PROCESSEUR que l'appel à l'aide, par opposition à la façon dont beaucoup que l'appel, en plus de tout le reste étant effectué par chaque programme sur votre ordinateur, utilisez, vous n'êtes même pas appeler la bonne fonction, donc il n'y a aucune manière de les obtenir à faire ce que vous voulez.
Et il n'y a rien dans
psutil
qui est conçu pour faire. Le point de l'ensemble depsutil
est qu'il fournit des informations sur votre système, et au sujet de votre programme de "l'extérieur" de la perspective. Il ne sait rien à propos de ce que les fonctions que vous avez exécuté lors de l'.Cependant, il y a des choses qui viennent avec le stdlib que faire des choses comme ça, comme
ressource.getrusage
ou lacProfile
module. Sans savoir exactement ce que vous essayez d'accomplir, il est difficile de vous dire exactement quoi faire, mais peut-être que si vous lisez ceux liés docs ils vont vous donner quelques idées.resource.getrusage
, dont je vous ai déjà donné un lien. Si non, que vous voulez dire?Si vous allez à ignorer les docs et répétez la même ambiguë question maintes et maintes fois, je ne peux pas promettre que ce
getrusage
donne ce que vous voulez, parce que je ne sais pas vraiment ce que vous voulez. En essayant de code de profil sans même savoir ce que la base de termes pour dire est inutile, et si vous n'allez pas même essayer d'apprendre, je peux pas vous aider.Vous voulez que la moyenne de l'UC % utilisé par votre processus pendant ce temps? Le pic? Vous souhaitez ajouter des cœurs utilisés ensemble, ou de répéter séparément? Vous voulez compter uniquement CPU utilisé par votre processus directement, ou CPU utilisé par le noyau sur votre nom? Par exemple, la moyenne de l'UC % utilisé par tous les threads du processus directement comme une fraction de tous les cœurs (
ru_utime
après -ru_utime
avant) / (temps horloge murale après - horloge murale de temps avant). Mais si vous voulez quelque chose de différent, la réponse est différente.Peut-être que si vous expliquez ce que vous essayez d'utiliser ce pour, quelqu'un peut deviner exactement ce que vous voulez.
Vous ne pouvez pas obtenir que l'utilisation CPU d'une fonction particulière. Ou mieux, vous pouvez déterminer combien de temps il faut pour que la fonction de retour, mais je parie que ce n'est pas ce que vous cherchez. D'autre part, vous obtenir que l'utilisation CPU d'un processus (psutil.Processus' get_cpu_times() et get_cpu_percent ()), ou à leurs fils (psutil.Processus.get_threads()).
OriginalL'auteur abarnert
os.getpid
- cela retourne le PID du programme en cours d'exécution de ce code. Par exemple, lorsque vous l'exécutez sur pythonw.exe il sera de retour PID de pythonw.exe.Donc
p.get_cpu_percent
sera de retour d'utilisation de l'UC de ce processus.si vous voulez à l'échelle du système de la CPU, de
psutil.cpu_percent
pouvez faire le travail.Espère que cette aide, bonne santé!
OriginalL'auteur SharadTalekar
vous avez besoin psutil
puis
OriginalL'auteur venergiac
Merci à tous...
J'ai la solution pour ma requête.
Ici la valeur de l'intervalle les choses. L'appel final va donner de l'utilisation du processeur de pourcentage pour ma réelle de l'appel de fonction.
OriginalL'auteur Bharathi