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.