Python Timeit() z przykładami

Czym jest Python Czas()?

Python czas() jest metodą w Python bibliotekę do pomiaru czasu wykonania danego fragmentu kodu. The Python Biblioteka uruchamia instrukcję code 1 milion razy i podaje minimalny czas potrzebny na wykonanie danego zestawu fragmentów kodu. Python timeit() to przydatna metoda pomagająca sprawdzić wydajność kodu.

Składnia

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

Parametry

  • stmt: To zajmie kod, dla którego chcesz zmierzyć czas wykonania. Wartość domyślna to „pass”.
  • ustawienie: Tutaj będą szczegóły konfiguracji, które muszą zostać wykonane przed stmt. Wartość domyślna to „pass”.
  • Timer: Będzie to miało 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().

Kod Przykład 1

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

Wyjście:

0.06127880399999999

Widzieliśmy prosty przykład, który podaje nam czas wykonania prostej instrukcji kodu = 10*5, a czas potrzebny na jej wykonanie wynosi 0.06127880399999999.

Timing Wiele linii w kodzie Pythona

Istnieją dwa sposoby wykonania wielu wierszy kodu w funkcji timeit.timeit(): rozdzielając wiersze średnikami lub umieszczając kod jako ciąg znaków w potrójnych cudzysłowach.

Oto przykłady pokazujące działanie tego rozwiązania.

Przykład 1: Użycie średnika

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

Wyjście:

The time taken is  0.137031482

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

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

Wyjście:

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

timeit – Metody

Oto 2 ważne metody timeit

timeit.default_timer() : Po wykonaniu zwróci domyślny czas.

timeit.repeat(stmt, konfiguracja, timer, powtórz, liczba) : tak samo jak timeit() , ale w przypadku powtórzenia funkcja timeit() jest wywoływana jako liczba powtórzeń.

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

Wyjście:

0.46715912400000004

2 przykład

default_timer() Przykład

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

Wyjście:

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

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

Wyjście:

 [0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]

timeit.repeat() działa podobnie do funkcji timeit.timeit() z tą tylko różnicą, że uwzględnia argument powtórzenia i zwraca czas wykonania w formacie tablicy z wartościami zgodnymi z liczbą powtórzeń.

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

Składnia wykonywania funkcji wewnątrz funkcji 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 chcesz wykonać kod.
  • -r N: liczba powtórzeń funkcji timeit().
  • -s S: tutaj znajdują się szczegóły konfiguracji, które zostaną wykonane przed wykonaniem kodu.
  • -t: w tym celu możesz skorzystać z funkcji time.time()
  • -c: w tym celu możesz skorzystać z time.clock()
  • -h: o pomoc
  • oświadczenie 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

Inny sposób wykonania w wierszu 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 pomiaru czasu wykonania Python kod?

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

  • Uruchamia instrukcję code 1 milion razy, co jest wartością domyślną, i na tej podstawie zwraca minimalny czas potrzebny. Możesz także zwiększyć/zmniejszyć 1 milion, ustawiając numer argumentu w funkcji czasu ().
  • Podczas wykonywania testu odśmiecanie jest każdorazowo 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 Windows system operacyjny i time.time() dla systemów Mac i Linux.

Podsumowanie

Funkcja 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
  • konfiguracja: Zawiera szczegóły konfiguracji, które należy wykonać przed stmt
  • timer: Będzie to miało wartość timera, timeit() ma już ustawioną wartość domyślną i możemy ją zignorować.
  • liczba: Stmt zostanie wykonany zgodnie z liczbą podaną tutaj.