Python Timeit() mit Beispielen

Was ist Python Zeit es()?

Python timeit() ist eine Methode in Python Bibliothek, um die Ausführungszeit des angegebenen Codeausschnitts zu messen. Die Python Die Bibliothek führt die Codeanweisung 1 Million Mal aus und gibt die Mindestzeit an, die für den angegebenen Satz von Codeausschnitten benötigt wird. Python timeit() ist eine nützliche Methode, mit deren Hilfe die Leistung des Codes überprüft werden kann.

Syntax

timeit.timeit(stmt, setup,timer, number)

Parameter

  • Anw: Hiermit wird der Code übernommen, dessen Ausführungszeit Sie messen möchten. Der Standardwert ist „pass“.
  • -Setup: Hier werden Setup-Details angezeigt, die vor stmt ausgeführt werden müssen. Der Standardwert ist „pass“.
  • Timer: Dies wird den Timerwert haben, timeit() hat bereits einen Standardwert festgelegt und wir können ihn ignorieren.
  • Anzahl: Der stmt wird gemäß der hier angegebenen Nummer ausgeführt. Der Standardwert ist 1000000.

Um mit timeit() zu arbeiten, müssen wir das Modul importieren, wie unten gezeigt:

import timeit

Erstes Beispiel

Hier ist ein einfaches Beispiel für die Funktion timeit()

Codebeispiel 1

# testing timeit()
import timeit
print(timeit.timeit('output = 10*5'))

Ausgang:

0.06127880399999999

Wir haben ein einfaches Beispiel gesehen, das uns die Ausführungszeit der einfachen Code-Anweisungsausgabe = 10*5 gibt, und die Zeit, die für die Ausführung benötigt wird, beträgt 0.06127880399999999.

Timing Mehrere Zeilen im Python-Code

Es gibt zwei Möglichkeiten, mehrere Codezeilen in timeit.timeit() auszuführen: durch Trennen der Zeilen durch Semikolons oder durch Einschließen des Codes als Zeichenfolge in dreifache Anführungszeichen.

Hier sind Beispiele, die die Funktionsweise zeigen.

Beispiel 1: Verwendung eines Semikolons

import timeit
print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))

Ausgang:

The time taken is  0.137031482

Beispiel 2: Verwendung von dreifachen Anführungszeichen

import timeit
import_module = "import random"
testcode = ''' 
def test(): 
    return random.randint(10, 100)
'''
print(timeit.repeat(stmt=testcode, setup=import_module))

Ausgang:

C:\pythontest>python testtimeit.py
The time taken is  0.182619178

timeit – Methoden

Hier sind zwei wichtige Timeit-Methoden

timeit.default_timer() : Dies gibt bei der Ausführung die Standardzeit zurück.

timeit.repeat(stmt, setup, timer, wiederholen, anzahl) : wie timeit() , aber mit „repeat“ wird timeit() aufgerufen, wie oft wiederholt wird.

Programmbeispiel 1

# testing timeit()
import timeit
import_module = "import random"
testcode = ''' 
def test(): 
    return random.randint(10, 100)
'''
print(timeit.timeit(stmt=testcode, setup=import_module))

Ausgang:

0.46715912400000004

Beispiel 2

Beispiel für default_timer()

# testing timeit()
 
import timeit
import random
 
def test(): 
    return random.randint(10, 100)
 
starttime = timeit.default_timer()
print("The start time is :",starttime)
test()
print("The time difference is :", timeit.default_timer() - starttime)

Ausgang:

The start time is : 0.220261875
The time difference is : 0.0004737320000000045

Beispiel 3: timeit.repeat()

# testing timeit()
import timeit
import_module = "import random"
testcode = ''' 
def test(): 
    return random.randint(10, 100)
'''
print(timeit.repeat(stmt=testcode, setup=import_module, repeat=5))

Ausgang:

 [0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]

timeit.repeat() funktioniert ähnlich wie die Funktion timeit.timeit(), mit dem einzigen Unterschied, dass sie das Wiederholungsargument berücksichtigt und die Ausführungszeit im Array-Format mit Werten gemäß der Wiederholungsnummer zurückgibt.

Ausführung der Timing-Funktion timeit.timeit() innerhalb der Befehlszeilenschnittstelle

Die Syntax zum Ausführen Ihrer Funktion innerhalb von timeit() auf der Befehlszeile lautet wie folgt:

python -m timeit [-n N] [-r N] [-s S] [-t] [-c] [-h] [code statement ...]

Befehlszeilenparameter:

  • -n N: Die Häufigkeit, mit der der Code ausgeführt werden soll.
  • -r N: die Häufigkeit, mit der die Funktion timeit() wiederholt werden soll
  • -s S: Hier werden Setup-Details angezeigt, die vor der Codeausführung ausgeführt werden.
  • -t: Hierfür können Sie time.time() nutzen
  • -c: Hierfür können Sie time.clock() nutzen
  • -h: für Hilfe
  • Codeanweisung: Die Codedetails.

Beispiel

C:\pythontest>python -m timeit -s 'text="hello world"'
20000000 loops, best of 5: 13.1 nsec per loop

Eine weitere Möglichkeit zur Ausführung innerhalb der Befehlszeile ist die folgende:

Beispiel

>>> import timeit
>>> print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))
The time taken is  0.15048536300000137
>>>

Warum ist timeit() die beste Methode zur Messung der Ausführungszeit von Python Code?

Hier sind einige Gründe, warum wir timeit() für die beste Methode zur Messung der Ausführungszeit halten.

  • Es führt die Codeanweisung 1 Million Mal aus, was dem Standardwert entspricht, und gibt Ihnen daraus die minimal benötigte Zeit zurück. Sie können die 1 Million auch erhöhen/verringern, indem Sie das Argument number in der Funktion time() festlegen.
  • Während der Testausführung wird die Garbage Collection jedes Mal durch die Funktion time() deaktiviert.
  • timeit() nimmt intern die genaue Zeit gemäß Ihrem verwendeten Betriebssystem. Beispielsweise wird time.clock() verwendet für Windows Betriebssystem und time.time() für Mac und Linux.

Zusammenfassung

Timeit() wird verwendet, um die Ausführungszeit für den angegebenen kleinen Code zu ermitteln

Mit timeit() verwendete Parameter

  • stmt: Dies erfordert den Code, mit dem Sie die Ausführungszeit messen möchten
  • Setup: Hier finden Sie Setup-Details, die vor dem Stmt ausgeführt werden müssen.
  • timer: Dies wird den Timerwert haben, timeit() hat bereits einen Standardwert festgelegt und wir können ihn ignorieren.
  • Zahl: Der stmt wird gemäß der hier angegebenen Zahl ausgeführt.