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.