Python Timeit() med eksempler
โก Smart opsummering
Python Timeit() mรฅler udfรธrelsestiden for et lille kodestykke ved at kรธre det mange gange og returnere den minimale varighed. Den understรธtter metoderne timeit, repeat og default_timer og fungerer fra scripts eller kommandolinjen.

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)
Driftsparametre
- 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
Code Eksempel 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.
