Zum Hauptinhalt springen

So messen Sie die Codeausführungszeit in Python: Einfache Möglichkeiten

Messen der Codeausführungszeit - ein wichtiger Aspekt der Profilierung und Optimierung von Software, der dazu beitragen kann, die Leistung von Programmen zu verbessern. In Python gibt es einige einfache und effektive Möglichkeiten, die Codeausführungszeit zu messen und Engpässe aufzudecken, die das Programm verlangsamen.

Eine der einfachsten Möglichkeiten, die Codeausführungszeit zu messen - verwendung des Moduls time. Das time-Modul enthält Funktionen zum Arbeiten mit der Zeit, einschließlich der Funktion time(), die die Anzahl der Sekunden zurückgibt, die seit Beginn der Epoche (1. Januar 1970) vergangen sind. In Python 3.x Funktion wird verwendet time.perf_counter(), die den aktuellen Bruchteil der Zeit in Sekunden zurückgibt (normalerweise zwischen 0 und 1).

Eine weitere praktische Möglichkeit, die Codeausführungszeit zu messen, ist die Verwendung einer Methode timeit() aus dem Modul timeit. Mit dieser Methode können Sie den Code mehrmals ausführen und die Gesamtausführungszeit in Sekunden zurückgeben. Das Timeit-Modul bietet außerdem die Möglichkeit, die Anzahl der Wiederholungen anzugeben und die Ergebnisse zu berechnen, um genauere Messungen der Codeleistung zu erhalten.

Darüber hinaus besteht die Möglichkeit, Dekoratoren zu verwenden, um die Ausführungszeit von Funktionen zu messen. Dekoratoren sind eine Möglichkeit, vorhandenen Funktionen zusätzliche Funktionalität hinzuzufügen, ohne ihren Code ändern zu müssen. Mit dem Dekorator können Sie die Ausführungszeit einer Funktion messen und das Ergebnis auf dem Bildschirm anzeigen.

Verwenden des Timeit-Moduls

Vorteil der Verwendung des Moduls timeit es berücksichtigt automatisch verschiedene Faktoren, die die Laufzeit beeinflussen können, z. B. die CPU-Auslastung oder die Aktivität anderer Programme auf dem Computer. Daher werden die Ergebnisse mit timeit. genauer und zuverlässiger im Vergleich zu einfachen Möglichkeiten, die Laufzeit zu messen.

Um das Modul zu verwenden timeit sie müssen es mit dem Befehl import timeit importieren. Sie können dann die Timeit-Funktion verwenden.timeit() , das zwei erforderliche Argumente akzeptiert: die Zeile mit dem auszuführenden Code und die Anzahl der Wiederholungen. Zum Beispiel:

import timeitcode = '''def foo():for i in range(1000):pass'''timeit.timeit(code, number=1000)

In diesem Beispiel wird der Code def foo(): 1000 Mal ausgeführt, und die Funktion timeit() gibt die durchschnittliche Laufzeit in Sekunden zurück.

Darüber hinaus ist das Modul timeit bietet auch andere nützliche Funktionen zum Messen der Codeausführungszeit, z. B. timeit.repeat() , timeit.default_timer() und andere. Mit diesen Funktionen können Sie noch genauere und vielseitigere Messungen der Codeausführungszeit in Python erhalten.

Verwenden der time() -Funktion

In Python können Sie die time() -Funktion aus dem time-Modul verwenden, um die Codeausführungszeit zu messen.

Diese Funktion gibt die aktuelle Zeit in Sekunden seit Beginn der Epoche (1. Januar 1970) als Dezimalzahl zurück. Sie können sich den Wert vor der Codeausführung merken und ihn nach der Codeausführung mit dem neuen Wert vergleichen, um die für die Ausführung benötigte Zeit zu erhalten.

Dazu müssen Sie das time-Modul importieren und die Funktion time() am Anfang und Ende des zu messenden Codeblocks aufrufen. Wenn wir die Anfangszeit von der Endzeit subtrahieren, erhalten wir die Codeausführungszeit in Sekunden.

Beispiel für die Verwendung der Funktion time() :

import timestart_time = time.time()# Блок кода, время выполнения которого необходимо измеритьfor i in range(1000000):passend_time = time.time()execution_time = end_time - start_timeprint(f"Время выполнения кода: секунд")

Das Ergebnis des Programms wird ungefähr so aussehen:

Время выполнения кода: 0.0987654321 секунд

Die Verwendung der time() -Funktion ermöglicht es Ihnen daher, die Ausführungszeit des Codes in Python bequem zu messen.

Verwenden des Timeit-Dekorators

Um den Timeit-Dekorator zu verwenden, müssen Sie ihn aus dem timeit-Modul importieren:

from timeit import timeit

Sie können dann den Timeit-Dekorator auf die zu messende Funktion oder den zu messenden Codeblock anwenden. Zum Beispiel:

@timeit def my_function():

Dies bedeutet, dass die Funktion my_function() wird die Ausführungszeit messen.

Der Timeit-Dekorator kann verwendet werden, um die Laufzeit beliebiger Teile des Codes zu messen, einschließlich einzelner Funktionen, Klassen oder sogar einzelner Codezeilen.

Mit dem Timeit-Dekorator können Sie die Codeausführungszeit genau messen und für maximale Leistung optimieren.