Python Timeit () mit Beispielen

Inhaltsverzeichnis:

Anonim

Was ist Python Timeit ()?

Python timeit () ist eine Methode in der Python-Bibliothek, um die Ausführungszeit zu messen, die das angegebene Code-Snippet benötigt. Die Python-Bibliothek führt die Code-Anweisung 1 Million Mal aus und gibt die Mindestzeit an, die für den angegebenen Satz von Code-Snippets benötigt wird. Python timeit () ist eine nützliche Methode, mit der Sie die Leistung des Codes überprüfen können.

Syntax:

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

Parameter

  • stmt : Hiermit wird der Code verwendet, für den Sie die Ausführungszeit messen möchten. Der Standardwert ist "pass".
  • setup : Hier finden Sie Setup-Details, die vor stmt ausgeführt werden müssen. Der Standardwert ist "bestanden".
  • timer : Dies hat den Timer-Wert, timeit () hat bereits einen Standardwert eingestellt und wir können ihn ignorieren.
  • number : Der stmt wird gemäß der hier angegebenen Nummer ausgeführt. Der Standardwert ist 1000000.

Um mit timeit () arbeiten zu können, müssen wir das Modul wie folgt importieren:

import timeit

Erstes Beispiel

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

Codebeispiel 1:

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

Ausgabe:

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, wie Sie in timeit.timeit () mehrere Codezeilen ausführen können, indem Sie ein Semikolon verwenden oder den Code als Zeichenfolge mit dreifachen Anführungszeichen speichern.

Hier sind Beispiele, die die Funktionsweise zeigen.

Beispiel 1: Verwenden von Semikolon

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

Ausgabe:

The time taken is 0.137031482

Beispiel 2: Dreifache Anführungszeichen verwenden

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

Ausgabe:

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

timeit - Methoden:

Hier sind 2 wichtige Timeit-Methoden

timeit.default_timer () : Dies gibt die Standardzeit zurück, wenn es ausgeführt wird.

timeit.repeat (stmt, setup, timer, repeat, number) : wie timeit (), aber bei repeat wird timeit () als die Anzahl der Wiederholungen bezeichnet.

Programmbeispiel 1:

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

Ausgabe:

0.46715912400000004

Beispiel 2:

default_timer () Beispiel

# testing timeit()import timeitimport randomdef 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)

Ausgabe:

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

Beispiel 3: timeit.repeat ()

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

Ausgabe:

[0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]

timeit.repeat () funktioniert ähnlich wie die Funktion timeit.timeit (), mit dem einzigen Unterschied im Wiederholungsargument und gibt die Ausführungszeit im Array-Format mit Werten gemäß der Wiederholungsnummer zurück.

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

Die Syntax zum Ausführen Ihrer Funktion in timeit () in 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: Gibt an, wie oft die Funktion timeit () wiederholt werden soll
  • -s S: Hier finden Sie Setup-Details, die vor der Codeausführung ausgeführt werden.
  • -t: Hierfür können Sie time.time () verwenden.
  • -c: Hierfür können Sie time.clock () verwenden.
  • -h: um Hilfe
  • Code-Anweisung: Die Codedetails.

Beispiel:

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

Eine andere Möglichkeit, die Sie innerhalb der Befehlszeile ausführen können, 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 () der beste Weg, um die Ausführungszeit von Python-Code zu messen?

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

  • Die Code-Anweisung wird 1 Million Mal ausgeführt, was dem Standardwert entspricht. Daraus ergibt sich die Mindestdauer. Sie können die 1 Million auch erhöhen / verringern, indem Sie die Argumentnummer in der Funktion time () festlegen.
  • Während der Ausführung des Tests wird die Speicherbereinigung jedes Mal durch die Funktion time () deaktiviert.
  • timeit () nimmt intern die genaue Zeit gemäß dem verwendeten Betriebssystem. Beispielsweise wird time.clock () für das Windows-Betriebssystem und time.time () für Mac und Linux verwendet.

Zusammenfassung

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

Mit timeit () verwendete Parameter

  • stmt: Hiermit wird der Code verwendet, mit dem Sie die Ausführungszeit messen möchten
  • setup: Hier finden Sie Setup-Details, die vor stmt ausgeführt werden müssen
  • timer: Dies hat den Timer-Wert, timeit () hat bereits einen Standardwert eingestellt und wir können ihn ignorieren.
  • number: Der stmt wird gemäß der hier angegebenen Nummer ausgeführt.