Die CPU-Auslastung Pro Prozess in Python
Ist es möglich für mich zu sehen, dass die Menge der Prozessor-Auslastung (% des Maximums), dass die aktuelle, python-Anwendung?
Szenario:
Meine Gastgeber werden mir erlauben, meine app, solange Sie nicht verbrauchen mehr als X% der CPU-Leistung, so möchte ich es auf 'halten Sie ein Auge auf sich selbst' und Verlangsamung. Also, wie kann ich wissen, wie viel CPU-die app ist mit?
Target-Plattform *nix, aber ich möchte es auf einem Win-Rechner auch.
InformationsquelleAutor der Frage UnkwnTech | 2008-11-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus der (2.5) Handbuch:
InformationsquelleAutor der Antwort gimel
Mithilfe psutil:
InformationsquelleAutor der Antwort Giampaolo Rodolà
Den
resource
Modul bietetgetrusage
die Ihnen die Informationen, die Sie brauchen, zumindest für Unix-ähnliche Plattformen.Beachten Sie, dass die CPU-Auslastung als Prozentsatz gemessen wird immer über ein Zeitintervall. Im wesentlichen, es ist die Zeit, die genommen, von Ihrem Programm etwas zu tun, dividiert durch das Zeitintervall.
Zum Beispiel, wenn Ihre Anwendung dauert 2 Sekunden CPU-Zeit über eine 5-Sekunden-Zeitraum, dann kann es gesagt werden, dass über 40% der CPU.
Beachten Sie, dass diese Berechnung, so einfach, wie es scheint, kann schwierig werden, wenn mit einem Multiprozessorsystem. Wenn Ihre Anwendung verwendet 7 Sekunden CPU-Zeit in 5 Sekunden von Wanduhr Zeit auf einer zwei-Prozessor-system, sagen Sie, es ist verwendet von 140% oder 70% CPU?
Update: Wie gimel erwähnt, die
os.times
- Funktion bietet auch diese Informationen in einer Plattform-unabhängigen Weise. Die obigen Berechnungen gelten weiterhin, natürlich.InformationsquelleAutor der Antwort Greg Hewgill
Verwenden
time.clock()
um die CPU-Zeit.Um den Prozentsatz der CPU-Auslastung tun, CPU time elapsed/time elapsed
Zum Beispiel, wenn die CPU-Zeit, die verstrichen ist 0.2 und der verstrichenen Zeit ist 1 dann die cpu-Auslastung liegt bei 20%.
Hinweis:Sie teilen durch die Anzahl der processers Sie haben. Wenn Sie 2 d.h. der eine dual-core:
InformationsquelleAutor der Antwort Ramchandra Apte