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)
Kenngrรถรen
- 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.
