Überprüfen Sie die Verarbeitungszeit und die Anzahl der Aufrufe für jeden Prozess mit Python (cProfile).

Einführung

Bei der Analyse von Daten ist mein eigener Code oft langsam. Es gibt auch eine Methode zum Messen der Zeit mithilfe der Zeitfunktion auf Ad-hoc-Basis, aber dieses Mal möchte ich die Profilerstellung verwenden.

Einfach zu verwenden

  1. Erteilen Sie den Befehl cProfile zur Laufzeit
python -m cProfile -o Dateiname, in den das Profil geschrieben werden soll.prof Dateiname, für den Sie die Verarbeitungszeit messen möchten.py
  1. Erstellen Sie Code, um in die Prof-Datei zu schauen
import pstats


if __name__ == "__main__":
    sts = pstats.Stats("hoge.prof")
    sts.strip_dirs().sort_stats("cumtime").print_stats(30)
  1. Führen Sie die obige py-Datei aus
Mon Jun 15 02:22:15 2020    hoge.prof

         415990 function calls (415842 primitive calls) in 0.742 seconds

   Ordered by: cumulative time
   List reduced from 350 to 30 due to restriction <30>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
      7/1    0.000    0.000    0.742    0.742 {built-in method builtins.exec}
        1    0.000    0.000    0.742    0.742 hoge.py:1(<module>)
        1    0.052    0.052    0.734    0.734 hoge.py:54(main)
    13338    0.337    0.000    0.337    0.000 {built-in method builtins.print}
    13337    0.013    0.000    0.284    0.000 {built-in method strptime}
    13337    0.022    0.000    0.269    0.000 _strptime.py:574(_strptime_datetime)
    13337    0.136    0.000    0.248    0.000 _strptime.py:318(_strptime)
    13339    0.008    0.000    0.056    0.000 _strptime.py:26(_getlang)
    13339    0.010    0.000    0.048    0.000 locale.py:571(getlocale)
    13339    0.007    0.000    0.027    0.000 locale.py:467(_parse_localename)
    11983    0.019    0.000    0.023    0.000 hoge.py:41(nxt_hash)
    13339    0.014    0.000    0.020    0.000 locale.py:384(normalize)
    13337    0.020    0.000    0.020    0.000 {method 'match' of 're.Pattern' objects}
    13338    0.011    0.000    0.016    0.000 hoge.py:11(read_files)
    13337    0.013    0.000    0.013    0.000 {method 'groupdict' of 're.Match' objects}
    13339    0.011    0.000    0.011    0.000 {built-in method _locale.setlocale}
     11/4    0.000    0.000    0.010    0.002 <frozen importlib._bootstrap>:978(_find_and_load)
     11/4    0.000    0.000    0.010    0.002 <frozen importlib._bootstrap>:948(_find_and_load_unlocked)
     11/4    0.000    0.000    0.009    0.002 <frozen importlib._bootstrap>:663(_load_unlocked)
      6/4    0.000    0.000    0.009    0.002 <frozen importlib._bootstrap_external>:722(exec_module)
    13337    0.009    0.000    0.009    0.000 {method 'split' of 'str' objects}
    13337    0.008    0.000    0.008    0.000 {method 'format' of 'str' objects}
    40114    0.008    0.000    0.008    0.000 {method 'get' of 'dict' objects}
     16/4    0.000    0.000    0.008    0.002 <frozen importlib._bootstrap>:211(_call_with_frames_removed)
    26674    0.004    0.000    0.004    0.000 {method 'keys' of 'dict' objects}
    26675    0.004    0.000    0.004    0.000 {method 'toordinal' of 'datetime.date' objects}
    27406    0.004    0.000    0.004    0.000 {built-in method builtins.isinstance}
27111/27083    0.004    0.000    0.004    0.000 {built-in method builtins.len}
     2947    0.003    0.000    0.003    0.000 {method 'hexdigest' of '_hashlib.HASH' objects}
    13682    0.003    0.000    0.003    0.000 {method 'rstrip' of 'str' objects}

Argumente von sort_stats

Referenz

Die Argumente von print_stats werden bis zum obersten K aufgelistet.

・ Ncalls: Anzahl der Anrufe -Tottime: Gesamtzeit, die für die Funktion von Interesse aufgewendet wurde (ausgenommen diese Zeit, wenn intern ein weiterer Anruf getätigt wird) ・ Cumtime: Berechnungszeit einschließlich des internen Aufrufs der Tottime

Recommended Posts

Überprüfen Sie die Verarbeitungszeit und die Anzahl der Aufrufe für jeden Prozess mit Python (cProfile).
Überprüfen Sie die Funktionsweise von Python für .NET in jeder Umgebung
[Python] Misst und zeigt die für die Verarbeitung erforderliche Zeit an
Verarbeitung (Python) Diagramm der Koordinaten der Liste Geben Sie an, wie oft in draw ()
Ermitteln Sie die Anzahl der Vorkommen für jedes Element in der Liste
Eine Funktion, die die Verarbeitungszeit einer Methode in Python misst
Überprüfen Sie das Verhalten des Zerstörers in Python
MongoDB mit Python zum ersten Mal
Status jedes Python-Verarbeitungssystems im Jahr 2020
Schlafverarbeitung für einen bestimmten Zeitraum (Sekunden) oder länger in Python
Die Geschichte, zum ersten Mal seit 5 Jahren wieder an die Front zurückzukehren und Python Django umzugestalten
python> array> Bestimmen Sie die Nummer und initialisieren Sie> mylist = [idx für idx im Bereich (10)] / mylist = [0 für idx im Bereich (10)] >> mylist = [0] * 10
Geben Sie die Anzahl der CPU-Kerne in Python aus
Zeigen Sie das Ergebnis der Geometrieverarbeitung in Python an
Bildverarbeitung? Die Geschichte, Python für zu starten
[IOS] Ändern Sie die Anzeigezeit für jedes Bild der GIF-Animation in Pythonista3.
Teilt die Zeichenfolge durch die angegebene Anzahl von Zeichen. In Ruby und Python.
Überprüfen Sie, ob die Zeichenfolge eine Zahl in Python ist
Verarbeitung von CSV-Daten in voller und halber Breite in Python
So ermitteln Sie die Anzahl der Stellen in Python
Der Prozess der Installation von Atom und der Ausführung von Python
Ermitteln Sie die Größe (Anzahl der Elemente) von Union Find in Python
Überprüfen Sie, ob in Java BigQuery-Tabellen vorhanden sind
Überprüfen Sie die atrophische Natur der Wahrscheinlichkeitsverteilung in Python
Zusammenfassung der Datumsverarbeitung in Python (Datum / Uhrzeit und Datum)
Geben Sie für jede Datei die angegebene Tabelle der Oracle-Datenbank in Python in Excel aus
So zählen Sie die Anzahl der Vorkommen jedes Elements in der Liste in Python mit der Gewichtung
Holen Sie sich die Anzahl der spezifischen Elemente in der Python-Liste
Python - Ermitteln Sie die Anzahl der Gruppen im regulären Ausdruck
[In kürzester Zeit verstehen] Python-Grundlagen für die Datenanalyse
[Homologie] Zählen Sie mit Python die Anzahl der Löcher in den Daten
[Python] Zeigt die verstrichene Zeit in Stunden, Minuten und Sekunden an (00:00:00)
Holen Sie sich das aktuelle Datum und die aktuelle Uhrzeit in Python unter Berücksichtigung des Zeitunterschieds
Der Prozess, Python-Code objektorientiert zu machen und zu verbessern
[Tipps] Probleme und Lösungen bei der Entwicklung von Python + Kivy
Koordination jedes Prozesses im MPI und Pufferung der Standardausgabe
Google sucht mit Python nach der Zeichenfolge in der letzten Zeile der Datei
Ruft den Index jedes Elements der Verwirrungsmatrix in Python ab
Die Geschichte der Schaffung eines "Geist- und Zeit-Chatrooms" exklusiv für Ingenieure im Unternehmen
Tipps für Python-Anfänger, um das Scikit-Image-Beispiel für sich selbst zu verwenden 8 Verarbeitungszeitmessung und Profiler
Überprüfen Sie Python auf Speicherlecks
Bestimmen Sie das Datums- und Uhrzeitformat mit Python und konvertieren Sie es in Unixtime
Die Geschichte von Python und die Geschichte von NaN
Suchen Sie mit Python nach externen Befehlen
Ich habe die Berechnungszeit des in Python geschriebenen gleitenden Durchschnitts verglichen
Wrap (Teil der) AtCoder Library in Cython zur Verwendung in Python
Überprüfen Sie die Zunahme / Abnahme der Bitmünzen für jede Adresse aus der Blockchain
[Python] Lassen Sie uns die Anzahl der Elemente im Ergebnis bei der Operation des Sets reduzieren
So überprüfen Sie die Speichergröße einer Variablen in Python
Ändern Sie automatisch die Größe von Screenshots für den App Store für jeden Bildschirm in Python
So überprüfen Sie die Speichergröße eines Wörterbuchs in Python
Überprüfen und verschieben Sie das Verzeichnis in Python
Zum ersten Mal veröffentlichte GitHub x Circle CI ein Textüberprüfungstool von Python
Verarbeiten Sie das Ergebnis von% time,% timeit
Dockerfile mit den notwendigen Bibliotheken für die Verarbeitung natürlicher Sprache mit Python
Siehe Python zum ersten Mal
Python Hinweis: Map - Machen Sie dasselbe für jedes Element der Liste
for, continue, break Erläutern Sie den Ablauf der iterativen Verarbeitung in Python3-Teil 1
Holen Sie sich den Titel und das Lieferdatum von Yahoo! News in Python
Versuchen Sie vorerst, FireBase Cloud Firestore mit Python zu verwenden
Holen Sie sich die Anzahl der Leser von Artikeln über Mendeley in Python