So messen Sie die Ausführungszeit mit Python Part 2

So messen Sie die Ausführungszeit mit Python Part 2

Der in Decorator zum Messen der Ausführungszeit 1 verwendete Dekorator hat die Ausführungszeit zurückgegeben. Gehen Sie wie folgt vor, um die Ausführungszeit anzuzeigen und gleichzeitig den ursprünglichen Wert der zu dekorierenden Funktion zurückzugeben. Es wird per Druck in die Standardausgabe ausgegeben, aber ich denke, es ist auch gut, ein Protokollierungsmodul oder ähnliches zu verwenden.

Zeitdekorateur neu definieren

def time(func):
    """
Debug Dekorator
Dekorateur, der die effektive Zeit anzeigt
    """
    import functools
    import datetime
    @functools.wraps(func)
    def wrapper(*args, **kwargs):
        start = datetime.datetime.today()
        print '-------------------------------------------------------------'
        print func
        print '----------------------------------'
        print 'start:', start
        result = func(*args, **kwargs)
        end = datetime.datetime.today()
        print 'end:', end
        print '----------------------------------'
        print 'running:', end - start
        print '-------------------------------------------------------------'
        return result
    return wrapper

Führen Sie den Zeitdekorateur aus

Ich habe versucht, einen neuen Dekorator für testfunc1 zu verwenden, der in [Dekorator zum Messen der Ausführungszeit 1] verwendet wird (http://qiita.com/drafts/9ac2916a9155d5317ebc/).

>>> testfunc1(rangelist)
-------------------------------------------------------------
<function testfunc1 at 0x01c40590>
----------------------------------
start: 2014-03-21 23:21:01.947000
end: 2014-03-21 23:21:02.362000
----------------------------------
running: 0:00:00.415000
-------------------------------------------------------------

Die Ausführungszeit wurde korrekt angezeigt.

Dekorateur, der nichts tut

Wenn Sie nicht debuggen möchten und es mühsam ist, die Funktionsdefinition einzeln neu zu schreiben, können Sie den Zeitdekorateur mit einem Nicht-Dekorator überschreiben. Wie Sie sehen können, kann IPython usw. das Argument nicht über die Registerkarte vervollständigen. Da functools.wapas verwendet wird, kann docstring auch mit einer von einem Dekorateur umschlossenen Funktion angezeigt werden, wenn Sie docstring richtig schreiben.

def time(func):
    """
Dekorateur, der nichts tut
    """
    import functools
    @functools.wraps(func)
    def wrapper(*args, **kwargs):
        return func(*args, **kwargs)
    return wrapper

Recommended Posts

So messen Sie die Ausführungszeit mit Python Teil 1
So messen Sie die Ausführungszeit mit Python Part 2
So messen Sie die Wiedergabezeit von MP3-Dateien mit Python
Messung der Ausführungszeit mit Python With
So messen Sie die Verarbeitungszeit mit Python oder Java
Hochladen mit Heroku, Flask, Python, Git (Teil 3)
Hochladen mit Heroku, Flask, Python, Git (Teil 1)
Hochladen mit Heroku, Flask, Python, Git (Teil 2)
Python: So verwenden Sie Async mit
Messen Sie die Ausführungszeit von Funktionen in Python
Erste Schritte mit Python
Python (vom ersten Mal bis zur Ausführung)
So berechnen Sie das Datum mit Python
So arbeiten Sie mit BigQuery in Python
Wie man einen Taschentest mit Python macht
[Teil1] Scraping mit Python → Organisieren Sie bis zu CSV!
Wie man mit Python-Flüchen Japanisch eingibt
So installieren Sie Python3 mit Docker Centos
[Python3] Definition eines Dekorators, der die Ausführungszeit einer Funktion misst
So schreiben Sie offline in Echtzeit Lösen von F01-Problemen mit Python
Verwendung von Python mit Jw_cad (Teil 1 Was ist externe Transformation)
So erstellen Sie eine Python- und Jupyter-Ausführungsumgebung mit VSCode
So berechnen Sie "xx time" in einem Schuss mit Python timedelta
Hochladen mit Heroku, Flask, Python, Git (4)
Lesen einer CSV-Datei mit Python 2/3
[REAPER] Wie man Reascript mit Python spielt
So führen Sie eine Mehrkern-Parallelverarbeitung mit Python durch
So installieren Sie Python
Funktionsausführungszeit (Python)
Strategie zur Monetarisierung mit Python Java
So implementieren Sie die Time-Wait-Verarbeitung mit wxpython
So schneiden Sie den unteren rechten Teil des Bildes mit Python OpenCV
Wie man offline in Echtzeit schreibt Ich habe versucht, E11 mit Python zu lösen
Verwendung von Python Kivy ④ ~ Ausführung unter Android ~
Beenden Sie die Python-Ausführung mit Strg-C (reagiert auf SIGINT)
[Python] Zeichnen mehrerer Diagramme mit Matplotlib
[Python] Wie man Excel-Dateien mit Pandas liest
So beschneiden Sie ein Bild mit Python + OpenCV
So installieren Sie Python
So legen Sie Attribute mit Mock of Python fest
Ausführungszeit für Python ausgeben
Wie man tkinter mit Python in Pyenv benutzt
[Python] Umgang mit japanischen Zeichen mit openCV
[Python] Vergleichen von Datum und Uhrzeit mit der hinzugefügten Zeitzone
Wie man offline in Echtzeit schreibt Ich habe versucht, E12 mit Python zu lösen
So fügen Sie HDA Hilfe hinzu (mit Python-Skriptbonus)
[Python] Wie zeichnet man mit Matplotlib ein Liniendiagramm?
So führen Sie eine Hash-Berechnung mit Salt in Python durch
[Einführung in Python] Wie iteriere ich mit der Bereichsfunktion?
Erklären Sie ausführlich, wie Sie mit Python einen Sound erzeugen
So führen Sie Tests zusammen mit Python unittest aus
[Python] So legen Sie den Download-Speicherort mit youtube-dl fest
Wie man ein Schießspiel mit toio macht (Teil 1)
Verwendung des interaktiven Python-Modus mit Git Bash
Um Zeit damit zu verbringen, mit Python gezeichnete Figuren zu färben
So konvertieren Sie eine JSON-Datei mit Python Pandas in eine CSV-Datei
[Python] Umgang mit Pandas read_html Lesefehler
Wie man mit Python-Flüchen ein Urteil über das Mausrad erhält