die CPU eines Prozessobjektes ist wandelbar. Ich habe ein paar Tests für dich gemacht.
for i in range(10):
p = psutil.Process(3301)
print p.cpu_percent(interval=0.1)
Ergebnis: 9.9 0.0 0.0 0.0 0.0 9.9 0.0 9.9 0.0 0.0
Also, wenn Sie die CPU-Prozent eines Prozessobjekt erhalten möchten, können Sie den Durchschnitt in bestimmten Zeit in Anspruch nehmen könnte.
test_list = []
for i in range(10):
p = psutil.Process(6601)
p_cpu = p.cpu_percent(interval=0.1)
test_list.append(p_cpu)
print float(sum(test_list))/len(test_list)
Ergebnis: 1.98
Uhm ich es reproduzieren kann. Es könnte ein Fehler in neueren Versionen von 'psutil' sein. (Ich habe andere Versionen der Bibliothek verwendet und es hat immer gut funktioniert). Beachten Sie, dass ich Werte ungleich Null erhalten konnte, die im aktuellen Prozess verschiedene Threads starten. – Bakuriu
Haben Sie es mit 'psutil.cpu_percent (interval = 1)' wie dokumentiert unter https://code.google.com/p/psutil/wiki/Documentation#CPU versucht? Und ich denke, wenn Sie die Process-Klasse verwenden, müssen Sie eine PID angeben (wie 'p = psutil.Process (os.getpid())'). –
@ChristianBerendt: Ich habe die Dokumentation aus dem gleichen Link gelesen und mehrere PIDs (gültig und ausgeführt), aber ich habe immer 0,0 –