[PYTHON] Einfach cProfile mit einem Dekorateur

Wenn Sie eine Bibliothek mit einer angemessenen Größe schreiben, ist es schwierig, das Skript über die Befehlszeile auszuführen und jedes Mal, wenn Sie ein Profil erstellen, setUp und tearDown von unittest zu schreiben. Erstellen Sie daher einen Dekorateur.

d_profile.py



import cProfile
import pstats


def profile(func):
    def _f(*args, **kwargs):
        pr = cProfile.Profile()
        pr.enable()
        print("\n<<<---")
        res = func(*args, **kwargs)
        p = pstats.Stats(pr)
        p.strip_dirs().sort_stats('cumtime').print_stats(20)
        print("\n--->>>")
        return res
    return _f

Es können nur bestimmte Funktionen und Methoden ermittelt werden. Kommentieren Sie den Dekorateur aus, wenn Sie das Profil deaktivieren möchten. Natürlich können Sie es auch verwenden, wenn Sie nur eine bestimmte Testmethode mit unittest profilieren möchten.

func.py



from d_profile import profile

@profile
def hoge(a, b):
    return a * b

Recommended Posts

Einfach cProfile mit einem Dekorateur
Mit Dekorateur dekorieren
Zeichnen Sie einfach eine Karte mit matplotlib.basemap
Erstellen Sie mit Class einen Python-Funktionsdekorator
Erstellen Sie mit Laragon ganz einfach eine Entwicklungsumgebung
Sie können auch mit Python problemlos eine GUI erstellen
Erstellen Sie einfach eine Python-Konsolenanwendung mit Click
Mit Supervisor einfach zu dämonisieren
A4 Größe mit Python-Pptx
Machen Sie einen Funktionsdekorateur
Machen Sie einfach einen Piepton mit Python
Warum nicht einfach mit Python eine stilvolle Tabelle erstellen?
Lernen Sie Librosa mit einem Tutorial 1
Mit Python mit Kelch ganz einfach ohne Server
Zeichnen Sie mit NetworkX ein Diagramm
Versuchen Sie, mit einer Shell zu programmieren!
Schreiben Sie einfach if-elif mit Lambda
Erstellen Sie eine Homepage mit Django
Verwenden eines Druckers mit Debian 10
Machen Sie eine Lotterie mit Python
So einfach wie möglich eine GUI mit Python erstellen [tkinter edition]
Tornado - Erstellen wir eine Web-API, die JSON problemlos mit JSON zurückgibt
Erstellen Sie ein Verzeichnis mit Python
Ein bisschen im Kettenschiff stecken
Zeichnen Sie mit networkx ein Diagramm
Machen Sie ein Feuer mit kdeplot
Erstellen Sie mit BERT + LightGBM + optuna ganz einfach ein Modell für die Verarbeitung natürlicher Sprache
Erstellen einer Kubernetes-Umgebung mit ansible 2
[Python] Was ist eine with-Anweisung?
Löse ABC163 A ~ C mit Python
Python-Grafikhandbuch mit Matplotlib.
Spiele mit einer Schildkröte mit Schildkrötengrafiken (Teil 1)
Zeichne ein Diagramm mit Julia + PyQtGraph (2)
Generieren Sie mit SciPy eine Normalverteilung
Erstellen eines bestimmten Baums mit Scikit-Learn
Lassen Sie uns eine GUI mit Python erstellen.
Machen Sie einen Sound mit Jupyter Notebook
Auflisten von Dateien mit bestimmten Erweiterungen
Erstellen eines Flask-Servers mit Docker
Erstellen Sie eine Deb-Datei mit Docker
Implementieren Sie einfach Unterbefehle mit Python-Klick
Einfache Handhabung von Listen mit Python + SQLite3
Zeichnen Sie mit matplotlib ein loses Diagramm
Stellen Sie die Django-Anwendung mit Docker bereit
Machen wir einen Blockbruch mit wxPython
Erstellen Sie eine virtuelle Umgebung mit Python!
Ich habe mit Python eine Lotterie gemacht.
Zeichne einen schönen Kreis mit Numpy
Wechseln Sie pyenv virtualenvs ganz einfach mit peco
Schreiben Sie ein Restnetzwerk mit TFLearn
Django-Tipps - Erstellen Sie eine Ranking-Site mit Django-
Zeichne ein Diagramm mit Julia + PyQtGraph (1)
Erstellen einer virtuellen Umgebung mit Python 3
Zeichne ein Diagramm mit Julia + PyQtGraph (3)
Löse ABC168 A ~ C mit Python
Erreichen Sie eine Warteschlange mit zwei Stapeln
Erstellen Sie ein Empfehlungssystem mit Python
Erstellen Sie eine Webanwendung mit Django
Generieren Sie eine vorsignierte URL mit golang