Beachten Sie, dass ich immer vergessen habe, wie man ein Profil erstellt und es erneut untersucht, wenn ich herausfinden wollte, wo der Engpass liegt, weil das Python-Skript sehr umfangreich ist.
Profiler ist standardmäßig in Python 3 verfügbar.
Python Profiler - Python 3-Dokumentation
Möglicherweise gibt es einen Profiler mit höherer Leistung, aber dieses Mal werde ich ihn verwenden, da der Zweck darin besteht, ihn schnell zu profilieren.
$ python -m cProfile -o profile.stats myscript.py
Wenn -o <Dateiname>
angegeben wird, wird das Ergebnis anstelle der Standardausgabe in eine Datei ausgegeben.
myscript.py
import cProfile
import very_slow_function
cProfile.run('very_slow_function()', 'profile.stats')
Schließen Sie den Prozess, den Sie profilieren möchten, mit cProfile.run
ab.
Wenn im zweiten Argument ein Dateiname angegeben wird, wird das Ergebnis in eine Datei ausgegeben, anstatt in die Standardausgabe.
Die von cProfile ausgegebene Ergebnisdatei besteht aus Binärdaten und kann nicht so angezeigt werden, wie sie ist. Es kann mit dem Standard-Modul pstats gelesen werden, aber ich kann mich nicht erinnern, wie ich es verwenden soll. Deshalb werde ich dieses Mal mit einem Tool namens cProfileV surfen.
$ pip install cprofilev
Nach der Installation können Sie den Befehl cprofilev
verwenden.
$ cprofilev -f profile.stat
Wenn Sie die Ergebnisdatei mit der Option -f
angeben und den Befehl cprofilev
ausführen, wird der HTTP-Server gestartet, sodass Sie die Profilerstellungsergebnisse anzeigen können, indem Sie über Ihren Browser auf http: // localhost: 4000 / zugreifen.
Dies ist praktisch, da Sie nach Anzahl der Ausführungen und Ausführungszeit jeder Methode sortieren können.
Recommended Posts