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.