Profilieren Sie schnell Python-Skripte

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.

Profil mit cProfile

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.

Bei der Profilerstellung des gesamten Skripts

$ python -m cProfile -o profile.stats myscript.py

Wenn -o <Dateiname> angegeben wird, wird das Ergebnis anstelle der Standardausgabe in eine Datei ausgegeben.

Bei der Profilerstellung nur ein Teil des Skripts

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.

Anzeigen von Profilerstellungsergebnissen mit cProfileV

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.

Installieren Sie cProfileV

$ pip install cprofilev

Nach der Installation können Sie den Befehl cprofilev verwenden.

Verwenden Sie cProfileV

$ 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

Profilieren Sie schnell Python-Skripte
Importieren Sie Skripte dynamisch in Python
Einrückungsformatierung von Python-Skripten
Ermöglichen Sie die schnelle Ausführung von Python-Skripten in Cloud Run mithilfe des Responders
Python
Verwenden Sie benutzerdefinierte Python-Skripte mit StackStorm
Führen Sie Python-Skripte synchron von C # aus
Überprüfen Sie die installierten Module im Python-Skript
Führen Sie das Python-Skript in Cisco Memorandum_EEM aus
So verpacken und verteilen Sie Python-Skripte
WebUI-Test mit Python2.6 + Selenium 2.44.0 - Profileinstellung
Erstellen Sie schnell eine Excel-Datei mit Python #python
Treiberskript zur parametrischen Berechnung von Python-Skripten
Vorlage zum Schreiben von Batch-Skripten in Python
Probieren Sie schnell die Microsoft Face API in Python aus
[Python] Erstellen Sie schnell eine API mit Flask