Python Timeit() med eksempler
Hvad er Python Timeit()?
Python timeit() er en metode i Python bibliotek for at måle den eksekveringstid, som det givne kodestykke tager. De Python biblioteket kører kodesætningen 1 million gange og giver den minimale tid, der tages fra det givne sæt kodestykker. Python timeit() er en nyttig metode, der hjælper med at kontrollere kodens ydeevne.
Syntaks
timeit.timeit(stmt, setup,timer, number)
parametre
- stmt: Dette vil tage den kode, som du vil måle udførelsestiden for. Standardværdien er "bestå".
- setup: Dette vil have opsætningsdetaljer, der skal udføres før stmt. Standardværdien er "bestå".
- timer: Dette vil have timerværdien, timeit() har allerede en standardværdi sat, og vi kan ignorere det.
- nummer: Stmt'en udføres i henhold til nummeret, der er angivet her. Standardværdien er 1000000.
For at arbejde med timeit(), skal vi importere modulet, som vist nedenfor:
import timeit
Første eksempel
Her er et simpelt eksempel på timeit() funktion
Kodeeksempel 1
# testing timeit() import timeit print(timeit.timeit('output = 10*5'))
Output:
0.06127880399999999
Vi har set et simpelt eksempel, der giver os eksekveringstiden for den simple kodesætning output = 10*5, og tiden det tager at udføre den er 0.06127880399999999.
Timing Flere linjer i python-kode
Der er to måder at udføre flere linjer kode i timeit.timeit(): ved at adskille linjerne med semikolon eller ved at omslutte koden som en streng med tredobbelte anførselstegn.
Her er eksempler, der viser, hvordan det fungerer.
Eksempel 1: Brug af semikolon
import timeit print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))
Output:
The time taken is 0.137031482
Eksempel 2: Brug af tredobbelte anførselstegn
import timeit import_module = "import random" testcode = ''' def test(): return random.randint(10, 100) ''' print(timeit.repeat(stmt=testcode, setup=import_module))
Output:
C:\pythontest>python testtimeit.py The time taken is 0.182619178
timeit – Metoder
Her er 2 vigtige timeit-metoder
timeit.default_timer() : Dette returnerer standardtidspunktet, når det udføres.
timeit.repeat(stmt, opsætning, timer, gentag, nummer) : samme som timeit() , men med repeat kaldes timeit() det antal gange, der er givet gentagelse.
Programeksempel 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))
Output:
0.46715912400000004
Eksempel 2
default_timer() Eksempel
# 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)
Output:
The start time is : 0.220261875 The time difference is : 0.0004737320000000045
Eksempel 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))
Output:
[0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]
timeit.repeat() fungerer på samme måde som timeit.timeit()-funktionen, med den eneste forskel, den tager i gentagelsesargumentet og giver udførelsestiden tilbage i array-format med værdier i henhold til gentagelsestallet.
Udførelse af timing-funktionen timeit.timeit() i kommandolinjegrænsefladen
Syntaksen til at udføre din funktion inde i timeit() på kommandolinjen er som følger:
python -m timeit [-n N] [-r N] [-s S] [-t] [-c] [-h] [code statement ...]
Kommandolinjeparametre:
- -n N: det antal gange, du ønsker, at koden skal udføres.
- -r N: det antal gange, du ønsker, at timeit()-funktionen skal gentages
- -s S: dette vil have opsætningsdetaljer, der vil blive eksekveret før kodeudførelse.
- -t: til dette kan du bruge time.time()
- -c: til dette kan du gøre brug af time.clock()
- -h: for hjælp
- kodeerklæring: Kodedetaljerne.
Eksempel
C:\pythontest>python -m timeit -s 'text="hello world"' 20000000 loops, best of 5: 13.1 nsec per loop
En anden måde, du kan udføre inde i kommandolinjen, er som vist nedenfor:
Eksempel
>>> import timeit >>> print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b')) The time taken is 0.15048536300000137 >>>
Hvorfor er timeit() den bedste måde at måle udførelsestiden på Python kode?
Her er et par grunde til, hvorfor vi betragter timeit() som den bedste måde at måle eksekveringstid på.
- Den kører kodesætningen 1 million gange, som er standardværdien, og derfra vil den returnere den minimale tid, det tager. Du kan også øge/mindske 1 million ved at indstille argumentnummeret i tid ()-funktionen.
- Mens testen udføres, deaktiveres affaldsindsamlingen hver gang efter tid () funktion.
- timeit() internt tager den nøjagtige tid i henhold til dit operativsystem, der bruges. For eksempel vil den bruge time.clock() til Windows styresystem og time.time() til mac og Linux.
Resumé
Timeit() bruges til at få den udførelsestid, det tager for den angivne lille kode
Parametre brugt med timeit()
- stmt: Dette vil tage den kode, du vil måle udførelsestiden
- opsætning: Dette vil have opsætningsdetaljer, der skal udføres før stmt
- timer: Dette vil have timerværdien, timeit() har allerede en standardværdi sat, og vi kan ignorere det.
- nummer: Stmt'en udføres i henhold til nummeret, der er angivet her.