Eine clevere Möglichkeit zur Zeitverarbeitung mit Python

Ausführung

Python verwendet 3.6.0. Bei stop_watch.py

print(f"{func.__name__}Ist{elapsed_time}Es dauerte eine Sekunde")

Diese Notation funktioniert jedoch nur, wenn sie 3.6.0 oder höher ist. Bitte schreiben Sie entsprechend Ihrer eigenen Version um. Die anderen Teile sind nicht bestätigt, aber ich denke, es wird mit 3x funktionieren.

In Verbindung stehender Artikel

Verwenden Sie grundsätzlich die im folgenden Artikel beschriebene Methode, um die Zeit mit Python zu messen.

[Python] Messen und Anzeigen der Verarbeitungszeit Python> Messung der Verarbeitungszeit> time.time () --start_time Funktion, die die Verarbeitungszeit einer Methode mit Python misst

Sie können die Zeit auch mit der oben beschriebenen Methode messen. Die zu schreibende Logik und die Zeitmessung werden jedoch kombiniert.

Daher gibt es eine clevere Möglichkeit, Logik und Zeitmessung vollständig zu trennen, daher werde ich sie teilen.

Verarbeitung zur Zeitmessung

stop_watch.py


from functools import wraps
import time
def stop_watch(func) :
    @wraps(func)
    def wrapper(*args, **kargs) :
        start = time.time()
        result = func(*args,**kargs)
        elapsed_time =  time.time() - start
        print(f"{func.__name__}Ist{elapsed_time}Es dauerte eine Sekunde")
        return result
    return wrapper

Der obige Code ist der Prozess zum Messen der Zeit. Für diesen Code wird ein Dekorateur verwendet. Die eigentliche Verarbeitung wird in "func" gespeichert, die Messstartzeit wird in "start" gespeichert und die für die Verarbeitung benötigte Zeit wird in "elaspsed_time" gespeichert. Wenn Sie mehr über Dekorateure erfahren möchten, schreiben Sie bitte ausführlich in diesen Artikel. 12 Schritte zum Verständnis von Python-Dekoratoren

Tatsächliche Nutzung

test.py


from stop_watch import stop_watch

@stop_watch
def func() :
    j=0
    for i in range(99999999) :
        j+=i
    print(j)

func()

Die tatsächliche Verwendung ist wie folgt. Schreiben Sie einfach "@ stop_watch" über die Funktion, mit der Sie die Zeit messen möchten. (* Es wird davon ausgegangen, dass sich die obige stop_watch.py und die folgende test.py im selben Verzeichnis (Ordner) befinden. Wenn sie unterschiedlich sind, schreiben Sie den Importvorgang bitte entsprechend um.)

Ergebnis ist,

result


4999999850000001
func ist 6.330682277679443 Es dauerte 2 Sekunden

Wird angezeigt. Das Ergebnis der Funktion, deren Zeit Sie messen möchten, wird in der ersten Zeile angezeigt. Der Name der Funktion, deren Zeit Sie messen möchten, und die Zeit, die zur Ausführung dieser Funktion benötigt wird, werden in der zweiten Zeile angezeigt.

Verschiedene Gefühle

Es hat nichts mit Logik zu tun, aber wenn Sie ein Ergebnis sehen möchten, wird der Dekorateur glänzen. Diesmal war es eine Aufgabe, die Zeit zu messen. Ich hoffe es hilft etwas.

Recommended Posts

Eine clevere Möglichkeit zur Zeitverarbeitung mit Python
So messen Sie die Verarbeitungszeit mit Python oder Java
Eine einfache Möglichkeit, mehrere for-Schleifen in Python zu vermeiden
Eine Standardmethode zum Entwickeln und Verteilen von Paketen in Python
Einführung einer guten Methode zur Verwaltung von DB-Verbindungen in Python
Wie bekomme ich Stacktrace in Python?
Einfache Möglichkeit, Wikipedia mit Python zu verwenden
Eine Funktion, die die Verarbeitungszeit einer Methode in Python misst
Eine einfache Möglichkeit, die in Python benötigte Zeit anzuzeigen und sie intelligenter zu verbessern
Berechnen wir das statistische Problem mit Python
Dateiverarbeitung in Python
Einbetten von Variablen in Python-Strings
Multithread-Verarbeitung in Python
Ich möchte mit Python ein Fenster erstellen
So erstellen Sie eine JSON-Datei in Python
Textverarbeitung mit Python
Schritte zum Entwickeln einer Webanwendung in Python
Verarbeitung in Python beenden
So fügen Sie Python ein Modul hinzu, das Sie in Julialang eingefügt haben
So benachrichtigen Sie Discord-Kanäle in Python
[Python] Wie zeichnet man mit Matplotlib ein Histogramm?
Python: Ich möchte die Verarbeitungszeit einer Funktion genau messen
Zur Darstellung von Datum, Uhrzeit, Uhrzeit und Sekunden in Python
So stoppen Sie das Programm bis zu einem bestimmten Datum und einer bestimmten Uhrzeit in Python
Auf der Suche nach einer effizienten Möglichkeit, eine Docker-Datei mit Python mit Gedichten zu schreiben
Konvertieren Sie Datum und Uhrzeit in Zeitzonen in Unixtime in Python2.7
Analysieren Sie eine JSON-Zeichenfolge, die in eine Datei in Python geschrieben wurde
So konvertieren / wiederherstellen Sie einen String mit [] in Python
Ich möchte eine Variable in einen Python-String einbetten
Ich möchte Timeout einfach in Python implementieren
Ich möchte in Python schreiben! (2) Schreiben wir einen Test
[Python] So erweitern Sie Variablen in einer Zeichenfolge
Ich habe versucht, einen Pseudo-Pachislot in Python zu implementieren
Erstellen Sie ein Plug-In, um Python Doctest mit Vim (1) auszuführen.
Ein Memorandum zum Ausführen eines Python-Skripts in einer Bat-Datei
Ich möchte eine Datei mit Python zufällig testen
Ich möchte mit einem Roboter in Python arbeiten.
Beachten Sie beim Initialisieren einer Liste in Python
Einführung in die lineare Algebra mit Python: A = LU-Zerlegung
[Python] Erstellt eine Methode zum Konvertieren von Radix in 1 Sekunde
Mehrstellige Multiplikationszeit bis zu 300 Millionen Stellen in Python
So führen Sie einen Befehl mit einem Unterprozess in Python aus
Dinge, die Sie bei der Verarbeitung von Zeichenfolgen in Python2 beachten sollten
Es wurde eine Möglichkeit für UEFI behoben, Windows zum Booten zu zwingen
Veröffentlichen / Hochladen einer in Python erstellten Bibliothek in PyPI
Dinge, die Sie bei der Verarbeitung von Zeichenfolgen in Python 3 beachten sollten
Machen Sie einen Screenshot in Python
UTF8-Textverarbeitung mit Python
Erstellen Sie eine Funktion in Python
Erstellen Sie ein Wörterbuch in Python
Ein Weg zum mittleren Python
Melden Sie sich auf der Website in Python an
Asynchrone Verarbeitung (Threading) in Python
Erstellen Sie ein Lesezeichen in Python
Sprechen mit Python [Text zu Sprache]
[Python] Eine andere Möglichkeit zum Importieren
Bildverarbeitungssammlung in Python