Python Timeit() s primjerima

Što je Python Timeit()?

Python timeit() je metoda u Python knjižnica za mjerenje vremena izvršenja zadanog isječka koda. The Python knjižnica izvodi naredbu koda 1 milijun puta i osigurava minimalno vrijeme potrebno za dani skup isječaka koda. Python timeit() je korisna metoda koja pomaže u provjeri izvedbe koda.

Sintaksa

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

Parametri

  • stmt: Ovo će uzeti kod za koji želite izmjeriti vrijeme izvršenja. Zadana vrijednost je "prolaz".
  • postava: Ovo će sadržavati detalje postavljanja koje je potrebno izvršiti prije stmt-a. Zadana vrijednost je "prolaz".
  • vremena: Ovo će imati vrijednost timera, timeit() već ima postavljenu zadanu vrijednost i možemo je zanemariti.
  • broj: stmt će se izvršiti prema broju koji je ovdje naveden. Zadana vrijednost je 1000000.

Da bismo radili s timeit(), moramo uvesti modul, kao što je prikazano u nastavku:

import timeit

Prvi primjer

Evo jednostavnog primjera funkcije timeit().

Primjer koda 1

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

Izlaz:

0.06127880399999999

Vidjeli smo jednostavan primjer koji nam daje vrijeme izvršenja izlaza naredbe jednostavnog koda = 10*5, a vrijeme potrebno za njegovo izvršenje je 0.06127880399999999.

Vremenski raspored Više redaka u python kodu

Postoje dva načina za izvršavanje više redaka koda u timeit.timeit(): odvajanjem redaka točkom-zarezom ili dodavanjem koda kao niza s trostrukim navodnicima.

Evo primjera koji pokazuju kako to funkcionira.

Primjer 1: Upotreba točke i zareza

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

Izlaz:

The time taken is  0.137031482

Primjer 2: Korištenje trostrukih navodnika

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

Izlaz:

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

timeit – Metode

Ovdje su 2 važne timeit metode

timeit.default_timer() : Ovo će vratiti zadano vrijeme kada se izvrši.

timeit.repeat(stmt, postava, mjerač vremena, ponavljanje, broj) : isto kao timeit() , ali s repeat timeit() se poziva koliko je puta zadano ponavljanje.

Primjer programa 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))

Izlaz:

0.46715912400000004

Primjer 2

default_timer() Primjer

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

Izlaz:

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

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

Izlaz:

 [0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]

timeit.repeat() radi slično funkciji timeit.timeit(), s jedinom razlikom što uzima argument ponavljanja i vraća vrijeme izvršenja u formatu polja s vrijednostima prema broju ponavljanja.

Izvršavanje vremenske funkcije timeit.timeit() unutar sučelja naredbenog retka

Sintaksa za izvršavanje vaše funkcije unutar timeit() na naredbenom retku je sljedeća:

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

Parametri naredbenog retka:

  • -n N: koliko puta želite da se kôd izvrši.
  • -r N: koliko puta želite da se funkcija timeit() ponovi
  • -s S: ovo će imati pojedinosti o postavljanju koje će se izvršiti prije izvršenja koda.
  • -t: za ovo možete koristiti time.time()
  • -c: za ovo možete koristiti time.clock()
  • -h: za pomoć
  • iskaz koda: pojedinosti koda.

Primjer

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

Drugi način na koji možete izvršiti unutar naredbenog retka je kako je prikazano u nastavku:

Primjer

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

Zašto je timeit() najbolji način za mjerenje vremena izvršenja Python kodirati?

Evo nekoliko razloga zašto smatramo da je timeit() najbolji način za mjerenje vremena izvršenja.

  • Pokreće iskaz koda 1 milijun puta, što je zadana vrijednost, i iz toga će vam vratiti minimalno potrebno vrijeme. Također možete povećati/smanjiti 1 milijun postavljanjem broja argumenta u funkciji vremena ().
  • Tijekom izvođenja testa, skupljanje smeća je svaki put onemogućeno funkcijom time ().
  • timeit() interno uzima točno vrijeme prema vašem operativnom sustavu koji koristite. Na primjer, koristit će time.clock() za Windows operativni sustav i vrijeme.time() za mac i Linux.

rezime

Timeit() se koristi za dobivanje vremena izvršenja zadanog malog koda

Parametri korišteni s timeit()

  • stmt: Ovo će uzeti kod koji želite za mjerenje vremena izvršenja
  • postavljanje: Ovo će sadržavati pojedinosti o postavljanju koje je potrebno izvršiti prije stmt-a
  • timer: ovo će imati vrijednost timera, timeit() već ima postavljenu zadanu vrijednost i možemo je zanemariti.
  • broj: stmt će se izvršiti prema broju koji je ovdje naveden.