Python Timeit() med eksempler
Hva er Python Timeit()?
Python timeit() er en metode i Python biblioteket for å måle utførelsestiden som den gitte kodebiten tar. De Python biblioteket kjører kodesetningen 1 million ganger og gir minimumstiden tatt fra det gitte settet med kodebiter. Python timeit() er en nyttig metode som hjelper til med å sjekke ytelsen til koden.
syntax
timeit.timeit(stmt, setup,timer, number)
Parametre
- stmt: Dette tar koden du vil måle utførelsestiden for. Standardverdien er "bestått".
- oppsett: Dette vil ha oppsettdetaljer som må utføres før stmt. Standardverdien er "bestått".
- tidsur: Dette vil ha timerverdien, timeit() har allerede en standardverdi satt, og vi kan ignorere den.
- Antall: Stmt vil kjøre i henhold til nummeret som er gitt her. Standardverdien er 1000000.
For å jobbe med timeit(), må vi importere modulen, som vist nedenfor:
import timeit
Første eksempel
Her er et enkelt eksempel på timeit()-funksjonen
Kodeeksempel 1
# testing timeit() import timeit print(timeit.timeit('output = 10*5'))
Utgang:
0.06127880399999999
Vi har sett et enkelt eksempel som gir oss utførelsestiden for den enkle kodesetningen = 10*5, og tiden det tar å utføre den er 0.06127880399999999.
Timing Flere linjer i python-kode
Det er to måter å kjøre flere linjer med kode i timeit.timeit(): ved å skille linjene med semikolon eller omslutte koden som en streng med tre anførselstegn.
Her er eksempler som viser hvordan det fungerer.
Eksempel 1: Bruke semikolon
import timeit print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))
Utgang:
The time taken is 0.137031482
Eksempel 2: Bruk av tredoble anførselstegn
import timeit import_module = "import random" testcode = ''' def test(): return random.randint(10, 100) ''' print(timeit.repeat(stmt=testcode, setup=import_module))
Utgang:
C:\pythontest>python testtimeit.py The time taken is 0.182619178
timeit – Metoder
Her er 2 viktige timeit-metoder
timeit.default_timer() : Dette vil returnere standardtiden når den utføres.
timeit.repeat(stmt, oppsett, tidtaker, gjenta, tall) : samme som timeit() , men med repeat kalles timeit() antall ganger repeat er gitt.
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))
Utgang:
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)
Utgang:
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))
Utgang:
[0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]
timeit.repeat() fungerer på samme måte som timeit.timeit()-funksjonen, med den eneste forskjellen den tar i repetisjonsargumentet og gir tilbake utførelsestiden i matriseformat med verdier i henhold til repetisjonsnummeret.
Utfører tidsfunksjon timeit.timeit() i kommandolinjegrensesnittet
Syntaksen for å utføre funksjonen din i timeit() på kommandolinjen er som følger:
python -m timeit [-n N] [-r N] [-s S] [-t] [-c] [-h] [code statement ...]
Kommandolinjeparametere:
- -n N: antall ganger du vil at koden skal kjøres.
- -r N: antall ganger du vil at timeit()-funksjonen skal gjentas
- -s S: dette vil ha oppsettdetaljer som vil bli utført før kodekjøring.
- -t: for dette kan du bruke time.time()
- -c: for dette kan du bruke time.clock()
- -h: for hjelp
- kodesetning: Kodedetaljene.
Eksempel
C:\pythontest>python -m timeit -s 'text="hello world"' 20000000 loops, best of 5: 13.1 nsec per loop
En annen måte du kan utføre inne 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 beste måten å måle utførelsestiden på Python kode?
Her er noen grunner til at vi anser timeit() som den beste måten å måle utførelsestid på.
- Den kjører kodesetningen 1 million ganger som er standardverdien, og fra det vil den returnere minimumstiden det tar. Du kan også øke/redusere 1 million ved å sette argumentnummeret i tid ()-funksjonen.
- Mens du utfører testen, deaktiveres søppelinnsamlingen hver gang etter tid () funksjon.
- timeit() internt tar nøyaktig tid i henhold til operativsystemet som brukes. For eksempel vil den bruke time.clock() for Windows operativsystem og time.time() for mac og Linux.
Sammendrag
Timeit() brukes for å få utførelsestiden det tar for den lille koden som er gitt
Parametere brukt med timeit()
- stmt: Dette tar koden du vil måle utførelsestiden
- oppsett: Dette vil ha oppsettdetaljer som må utføres før stmt
- timer: Dette vil ha timerverdien, timeit() har allerede en standardverdi satt, og vi kan ignorere den.
- nummer: Stmt vil utføres i henhold til nummeret som er gitt her.