Cpu_percent (interval = None) liefert immer 0 unabhängig vom Intervallwert PYTHON

Der Code gibt immer 0.0 Werte zurück, unabhängig von Intervallwerten.

import psutil p = psutil.Process() print p.cpu_percent(interval=1) print p.cpu_percent(interval=None) 

    3 Solutions collect form web for “Cpu_percent (interval = None) liefert immer 0 unabhängig vom Intervallwert PYTHON”

    Dieses Verhalten ist dokumentiert :

    Wenn das Intervall 0.0 oder None vergleicht man die Prozesszeiten mit der System-CPU-Zeit, die seit dem letzten Aufruf verstrichen ist. Das heißt das erste Mal, dass dies heißt, es wird einen sinnlosen 0.0 Wert zurückgeben, den du ignorieren solltest. In diesem Fall wird für die Genauigkeit empfohlen, dass diese Funktion ein zweites Mal mit mindestens 0.1 Sekunden zwischen Anrufen aufgerufen wird.

    Es gibt auch eine Warnung gegen die Verwendung von interval=None für einen einzigen Anruf:

    Warnung: Das erste Mal, dass diese Funktion mit Intervall = 0.0 oder None aufgerufen wird, wird ein sinnloser 0.0 Wert zurückgegeben, den du ignorieren solltest.

    Wenn Sie interval=None , stellen Sie sicher, dass Sie .cpu_percent Vergleich zu einem vorherigen Anruf anrufen.

     p = psutil.Process(pid=pid) p.cpu_percent(interval=None) for i in range(100): usage = p.cpu_percent(interval=None) # do other things 

    Anstatt von:

     for i in range(100): p = psutil.Process(pid=pid) p.cpu_percent(interval=None) # do other things 

    Von meinem eigenen Code, der funktioniert:

     cpu = psutil.cpu_times_percent(interval=0.4, percpu=False) 

    Die CPU eines Prozessobjekts ist veränderlich. Ich habe einige Tests für Sie 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 du den CPU-Prozentsatz eines Process-Objekts bekommen möchtest, kannst du den Durchschnitt in einer bestimmten Zeit nehmen.

     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

    Mehr Infos im Bild

    Python ist die beste Programmiersprache der Welt.