Wie misst man Zeit in Python?
- Zeitmessung mit dem Modul time
- Präzisere Messung mit time.perf_counter()
- Alternative: Zeitmessung mit timeit
- Zusammenfassung
In Python gibt es verschiedene Möglichkeiten, um Zeit zu messen. Dies ist besonders nützlich, wenn man die Ausführungsdauer von Programmabschnitten bestimmen oder Zeitintervalle berechnen möchte. In diesem Artikel werden die gängigsten Methoden zur Zeitmessung in Python ausführlich vorgestellt.
Zeitmessung mit dem Modul time
Das Python-Modul time bietet grundlegende Funktionen, um aktuelle Zeitpunkte zu erfassen oder Zeitabstände zu messen. Besonders häufig wird die Funktion time.time() verwendet, die die aktuelle Zeit als Sekunden seit dem 1. Januar 1970 (Epoche) zurückgibt.
Um die Ausführungszeit eines Codes zu bestimmen, kann man den Zeitpunkt vor und nach dem Codeblock erfassen und die Differenz berechnen:
import timestart = time.time()# Zu messender Codeend = time.time()print(f"Ausführungszeit: {end - start} Sekunden")Der Nachteil von time.time() ist, dass die Auflösung und Genauigkeit von System zu System variieren kann.
Präzisere Messung mit time.perf_counter()
Für genauere Messungen wurde in neueren Python-Versionen die Funktion time.perf_counter() eingeführt. Sie liefert einen hochauflösenden Zeitgeber, der optimal zur Zeitmessung geeignet ist, da er nicht von Systemzeitänderungen beeinflusst wird.
import timestart = time.perf_counter()# Zu messender Codeend = time.perf_counter()print(f"Ausführungszeit: {end - start} Sekunden")Alternative: Zeitmessung mit timeit
Das Modul timeit ist speziell für präzise Zeitmessungen von kurzen Python-Code-Snippets konzipiert. Es führt den zu testenden Code mehrmals aus und gibt eine aussagekräftige durchschnittliche Laufzeit zurück. Die Verwendung eignet sich besonders für Performance-Vergleiche.
import timeitcode = """sum = 0for i in range(1000): sum += i"""dauer = timeit.timeit(code, number=1000)print(f"Durchschnittliche Ausführungszeit: {dauer / 1000} Sekunden")Dabei ist number die Anzahl der Wiederholungen, um die Messung zu stabilisieren.
Zusammenfassung
Um Zeit in Python zu messen, stehen verschiedene Werkzeuge zur Verfügung. Für einfache Messungen genügt oft time.time(), für genauere Messungen ist time.perf_counter() zu empfehlen. Für detaillierte und wiederholte Messungen kleiner Codeabschnitte bietet sich das Modul timeit an. Die Wahl der Methode hängt vom Anwendungsfall und der erforderlichen Genauigkeit ab.
