Što je Python Timeit ()?
Python timeit () je metoda u Python biblioteci za mjerenje vremena izvršenja zadanog isječka koda. Python biblioteka pokreće naredbu koda milijun puta i pruža minimalno vrijeme potrebno za zadani skup isječaka koda. Python timeit () korisna je metoda koja pomaže u provjeri izvedbe koda.
Sintaksa:
timeit.timeit(stmt, setup,timer, number)
Parametri
- stmt : Ovo će uzeti kôd za koji želite mjeriti vrijeme izvršenja. Zadana vrijednost je "pass".
- setup : Ovo će imati detalje o podešavanju koje treba izvršiti prije stmt-a. Zadana vrijednost je "pass".
- timer : Ovo će imati vrijednost timera, timeit () već ima zadanu vrijednost, a mi je možemo zanemariti.
- broj : Stmt će se izvršiti prema broju koji je ovdje dat. Zadana vrijednost je 1000000.
Da bismo radili s timeit (), moramo uvesti modul, kao što je prikazano dolje:
import timeit
Prvi primjer
Evo jednostavnog primjera funkcije timeit ()
Primjer koda 1:
# testing timeit()import timeitprint(timeit.timeit('output = 10*5'))
Izlaz:
0.06127880399999999
Vidjeli smo jednostavan primjer koji nam daje vrijeme izvršenja jednostavnog izvoda izjave koda = 10 * 5, a vrijeme potrebno za njegovo izvršavanje je 0,06127880399999999.
Vremensko određivanje više linija u python kodu
Postoje dvije koje možete izvršiti više redaka koda u timeit.timeit (), koristeći točku sa zarezom ili spremanjem koda zatvorenog kao niz s trostrukim navodnicima.
Evo primjera koji pokazuju njegov rad.
Primjer 1: Korištenje točke sa zarezom
import timeitprint("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 timeitimport_module = "import random"testcode = '''def test():return random.randint(10, 100)'''print(timeit.repeat(stmt=testcode, setup=import_module))
Izlaz:
C:\pythontest>python testtimeit.pyThe time taken is 0.182619178
timeit - Metode:
Evo 2 važne metode timeit
timeit.default_timer () : Ovo će vratiti zadano vrijeme kada se izvrši.
timeit.repeat (stmt, setup, timer, repeat, number) : isto što i timeit (), ali s repeat timeit () naziva se koliko je puta ponovljeno.
Primjer programa 1:
# testing timeit()import timeitimport_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 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)
Izlaz:
The start time is : 0.220261875The time difference is : 0.0004737320000000045
Primjer 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))
Izlaz:
[0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]
timeit.repeat () radi slično funkciji timeit.timeit (), s jedinom razlikom koja se uzima u argumentu 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 detalje o podešavanju koji će se izvršiti prije izvršenja koda.
- -t: za ovo možete iskoristiti time.time ()
- -c: za ovo možete iskoristiti time.clock ()
- -h: za pomoć
- izjava koda: detalji 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 dolje:
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šavanja Python koda?
Evo nekoliko razloga zašto smatramo da je timeit () najbolji način za mjerenje vremena izvršenja.
- Izvodi naredbu koda 1 milijun puta koja je zadana vrijednost i od toga će vam vratiti minimalno potrebno vrijeme. Također možete povećati / smanjiti milion postavljanjem broja argumenta u funkciji time ().
- Tijekom izvođenja testa, odvoz smeća onemogućen je svaki put po funkciji time ().
- timeit () interno uzima točno vrijeme prema vašem operativnom sustavu koji se koristi. Na primjer, koristit će time.clock () za operativni sustav Windows i time.time () za Mac i Linux.
Sažetak
Timeit () koristi se za dobivanje vremena izvršenja datog malog koda
Parametri koji se koriste s timeit ()
- stmt: Ovo će uzeti kôd koji želite izmjeriti vrijeme izvršenja
- setup: Ovo će imati detalje o podešavanju koje treba izvršiti prije stmt-a
- timer: Ovo će imati vrijednost timera, timeit () već ima zadanu vrijednost, a mi je možemo zanemariti.
- broj: Stmt će se izvršiti prema broju koji je ovdje dat.