Python Timeit () z przykładami

Spisie treści:

Anonim

Co to jest Python Timeit ()?

Python timeit () to metoda w bibliotece Pythona do pomiaru czasu wykonywania danego fragmentu kodu. Biblioteka Pythona uruchamia instrukcję kodu 1 milion razy i zapewnia minimalny czas pobierany z danego zestawu fragmentów kodu. Python timeit () to przydatna metoda, która pomaga w sprawdzaniu wydajności kodu.

Składnia:

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

Parametry

  • stmt : Spowoduje to pobranie kodu, dla którego chcesz zmierzyć czas wykonania. Wartość domyślna to „pass”.
  • setup : Będzie to zawierało szczegóły konfiguracji, które muszą być wykonane przed stmt. Wartość domyślna to „pass”.
  • timer : Będzie miał wartość timera, timeit () ma już ustawioną wartość domyślną i możemy ją zignorować.
  • numer : Stmt zostanie wykonany zgodnie z liczbą podaną tutaj. Wartość domyślna to 1000000.

Aby pracować z timeit (), musimy zaimportować moduł, jak pokazano poniżej:

import timeit

Pierwszy przykład

Oto prosty przykład funkcji timeit ()

Przykład kodu 1:

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

Wynik:

0.06127880399999999

Widzieliśmy prosty przykład, który podaje nam czas wykonania prostej instrukcji kodu wyjściowego = 10 * 5, a czas potrzebny do wykonania wynosi 0,06127880399999999.

Taktowanie Wiele linii w kodzie Pythona

Istnieją dwa, które możesz wykonać w wielu wierszach kodu w timeit.timeit (), używając średnika lub zapisując kod zamknięty jako ciąg z potrójnymi cudzysłowami.

Oto przykłady, które pokazują, jak to działa.

Przykład 1: użycie średnika

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

Wynik:

The time taken is 0.137031482

Przykład 2: Używanie potrójnych cudzysłowów

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

Wynik:

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

timeit - Metody:

Oto 2 ważne metody pomiaru czasu

timeit.default_timer () : Zwróci domyślny czas po wykonaniu.

timeit.repeat (stmt, setup, timer, repeat, number) : to samo co timeit (), ale przy powtórzeniu timeit () jest nazywany liczbą powtórzeń.

Przykład programu 1:

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

Wynik:

0.46715912400000004

Przykład 2:

default_timer () Przykład

# 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)

Wynik:

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

Przykład 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))

Wynik:

[0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]

timeit.repeat () działa podobnie do funkcji timeit.timeit (), z tą różnicą, że przyjmuje argument powtarzania i zwraca czas wykonania w formacie tablicowym z wartościami zgodnymi z liczbą powtórzeń.

Wykonywanie funkcji pomiaru czasu timeit.timeit () w interfejsie wiersza poleceń

Składnia wykonywania funkcji wewnątrz timeit () w wierszu poleceń jest następująca:

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

Parametry wiersza polecenia:

  • -n N: ile razy ma być wykonywany kod.
  • -r N: ile razy ma być powtarzana funkcja timeit ()
  • -s S: to będzie zawierało szczegóły konfiguracji, które zostaną wykonane przed wykonaniem kodu.
  • -t: w tym celu możesz skorzystać z time.time ()
  • -c: w tym celu możesz skorzystać z time.clock ()
  • -h: o pomoc
  • instrukcja kodu: szczegóły kodu.

Przykład:

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

Innym sposobem wykonania w linii poleceń jest pokazany poniżej:

Przykład:

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

Dlaczego timeit () jest najlepszym sposobem mierzenia czasu wykonania kodu Pythona?

Oto kilka powodów, dla których uważamy, że timeit () jest najlepszym sposobem pomiaru czasu wykonania.

  • Uruchamia instrukcję kodu 1 milion razy, co jest wartością domyślną, i zwróci minimalny czas potrzebny. Możesz również zwiększyć / zmniejszyć 1 milion, ustawiając numer argumentu w funkcji time ().
  • Podczas wykonywania testu wyrzucanie elementów bezużytecznych jest za każdym razem wyłączane przez funkcję time ().
  • timeit () wewnętrznie pobiera dokładny czas zgodnie z używanym systemem operacyjnym. Na przykład użyje time.clock () dla systemu operacyjnego Windows i time.time () dla systemu Mac i Linux.

Podsumowanie

Timeit () służy do uzyskania czasu wykonania podanego małego kodu

Parametry używane z timeit ()

  • stmt: To zajmie kod, który chcesz zmierzyć czas wykonania
  • setup: Będzie to zawierało szczegóły konfiguracji, które należy wykonać przed stmt
  • timer: Będzie miał wartość timera, timeit () ma już ustawioną wartość domyślną i możemy ją zignorować.
  • numer: Stmt zostanie wykonany zgodnie z liczbą podaną tutaj.