Python Timeit () med eksempler

Indholdsfortegnelse:

Anonim

Hvad er Python Timeit ()?

Python timeit () er en metode i Python-biblioteket til at måle udførelsestiden taget af det givne kodestykke. Python-biblioteket kører kodeerklæringen 1 million gange og giver den minimale tid, der er taget 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 tager den kode, som du vil måle udførelsestiden for. Standardværdien er "bestået".
  • opsætning : Dette vil have installationsdetaljer, der skal udføres før stmt. Standardværdien er "bestå".
  • timer : Dette har timerværdien, timeit () har allerede en standardværdi indstillet, og vi kan ignorere den.
  • nummer : STMT'en udføres i henhold til det antal, 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 timeitprint(timeit.timeit('output = 10*5'))

Produktion:

0.06127880399999999

Vi har set et simpelt eksempel, der giver os udførelsestiden for den enkle kodeopgavens output = 10 * 5, og det tager tid at udføre den er 0,06127880399999999.

Timing Flere linjer i python-kode

Der er to, du kan udføre flere linjer med kode i timeit.timeit () ved hjælp af et semikolon eller ved at gemme koden, der er vedlagt som en streng med tredobbelte citater.

Her er eksempler, der viser, hvordan det fungerer.

Eksempel 1: Brug af semikolon

import timeitprint("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))

Produktion:

The time taken is 0.137031482

Eksempel 2: Brug af tredobbelte citater

import timeitimport_module = "import random"testcode = '''def test():return random.randint(10, 100)'''print(timeit.repeat(stmt=testcode, setup=import_module))

Produktion:

C:\pythontest>python testtimeit.pyThe time taken is 0.182619178

timeit - Metoder:

Her er to vigtige tidsmetoder

timeit.default_timer () : Dette returnerer standardtiden, når den udføres.

timeit.repeat (stmt, setup, timer, repeat, number) : samme som timeit (), men med gentagelse kaldes timeit () det antal gange gentagelse gives.

Programeksempel 1:

# testing timeit()import timeitimport_module = "import random"testcode = '''def test():return random.randint(10, 100)'''print(timeit.timeit(stmt=testcode, setup=import_module))

Produktion:

0.46715912400000004

Eksempel 2:

default_timer () Eksempel

# 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)

Produktion:

The start time is : 0.220261875The time difference is : 0.0004737320000000045

Eksempel 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))

Produktion:

[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, det tager i gentagelsesargumentet og giver eksekveringstiden tilbage i array-format med værdier pr.

Udførelse af tidsfunktion timeit.timeit () inde i kommandolinjegrænsefladen

Syntaksen for at udføre din funktion inden for timeit () på kommandolinjen er som følger:

python -m timeit [-n N] [-r N] [-s S] [-t] [-c] [-h] [code statement… ]

Kommandolinjeparametre:

  • -n N: antallet af 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 installationsdetaljer, der bliver udført 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
  • kodeopgørelse: 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 inden for 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 for Python-kode på?

Her er et par grunde til, at vi betragter timeit () som den bedste måde at måle udførelsestid på.

  • Det kører kodeerklæringen 1 million gange, hvilket er standardværdien, og derefter returnerer den dig den mindst mulige tid. Du kan også øge / mindske 1 million ved at indstille argumentnummeret i funktionen time ().
  • Under udførelsen af ​​testen deaktiveres skraldopsamlingen hver gang efter tid () -funktionen.
  • timeit () internt tager den nøjagtige tid i henhold til dit operativsystem, der bruges. For eksempel bruger den time.clock () til Windows-operativsystemet og time.time () til mac og Linux.

Resumé

Timeit () bruges til at få udført tid taget for den givne lille kode

Parametre brugt med timeit ()

  • stmt: Dette tager den kode, du vil måle udførelsestiden
  • opsætning: Dette vil have installationsdetaljer, der skal udføres før stmt
  • timer: Dette har timerværdien, timeit () har allerede en standardværdi indstillet, og vi kan ignorere den.
  • nummer: Stmt'en udføres i henhold til det antal, der er angivet her.