Python Timeit () med exempel

Innehållsförteckning:

Anonim

Vad är Python Timeit ()?

Python timeit () är en metod i Python-biblioteket för att mäta exekveringstiden för det givna kodavsnittet. Python-biblioteket kör kodutdraget 1 miljon gånger och ger den minsta tid som tas från den angivna uppsättningen kodavsnitt. Python timeit () är en användbar metod som hjälper till att kontrollera kodens prestanda.

Syntax:

timeit.timeit(stmt, setup,timer, number)

Parametrar

  • stmt : Detta tar koden som du vill mäta körningstiden för. Standardvärdet är "pass".
  • setup : Detta kommer att ha installationsdetaljer som måste köras innan stmt. Standardvärdet är "pass".
  • timer : Detta kommer att ha timervärdet, timeit () har redan ett standardvärde inställt, och vi kan ignorera det.
  • nummer : stmt kommer att köras enligt numret som anges här. Standardvärdet är 1000000.

För att arbeta med timeit () måste vi importera modulen, som visas nedan:

import timeit

Första exemplet

Här är ett enkelt exempel på timeit () -funktion

Kodexempel 1:

# testing timeit()import timeitprint(timeit.timeit('output = 10*5'))

Produktion:

0.06127880399999999

Vi har sett ett enkelt exempel som ger oss exekveringstiden för den enkla kodsatsutmatningen = 10 * 5, och det tar tid att köra den är 0,06127880399999999.

Timing Flera rader i pythonkod

Det finns två som du kan köra flera kodrader i timeit.timeit (), med ett semikolon eller genom att spara koden som är bifogad som en sträng med trippel citat.

Här är exempel som visar hur det fungerar.

Exempel 1: Använda semikolon

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

Produktion:

The time taken is 0.137031482

Exempel 2: Använda trippel citat

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:

Här är två viktiga tidsmetoder

timeit.default_timer () : Detta returnerar standardtiden när den körs.

timeit.repeat (stmt, setup, timer, repeat, number) : samma som timeit (), men med repeat upprepas timeit () det antal gånger som upprepas ges.

Programexempel 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

Exempel 2:

default_timer () Exempel

# 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

Exempel 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 () fungerar på samma sätt som timeit.timeit () -funktionen, med den enda skillnaden som krävs i upprepningsargumentet och ger tillbaka exekveringstiden i matrisformat med värden enligt upprepningsnumret.

Kör timingfunktion timeit.timeit () inuti kommandoradsgränssnittet

Syntaxen för att utföra din funktion inom timeit () på kommandoraden är som följer:

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

Kommandoradsparametrar:

  • -n N: antalet gånger du vill att koden ska köras.
  • -r N: antalet gånger du vill att timeit () -funktionen ska upprepas
  • -s S: detta kommer att ha installationsdetaljer som kommer att köras innan kodkörning.
  • -t: för detta kan du använda time.time ()
  • -c: för detta kan du använda time.clock ()
  • -h: för hjälp
  • koduttalande: Koduppgifterna.

Exempel:

C:\pythontest>python -m timeit -s 'text="hello world"'20000000 loops, best of 5: 13.1 nsec per loop

Ett annat sätt att köra på kommandoraden är som visas nedan:

Exempel:

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

Varför är timeit () det bästa sättet att mäta exekveringstiden för Python-kod?

Här är några anledningar till varför vi anser att timeit () är det bästa sättet att mäta exekveringstid.

  • Det kör kodutdraget 1 miljon gånger som är standardvärdet, och från det kommer det att ge dig den minsta tid det tar. Du kan också öka / minska 1 miljon genom att ställa in argumentnumret i time () -funktionen.
  • När testet utförs är skräpsamlingen inaktiverad varje gång efter gång () -funktionen.
  • timeit () tar internt den exakta tiden enligt ditt operativsystem som används. Till exempel kommer den att använda time.clock () för Windows-operativsystem och time.time () för mac och Linux.

Sammanfattning

Timeit () används för att få exekveringstiden för den lilla givna koden

Parametrar som används med timeit ()

  • stmt: Detta tar koden du vill mäta körningstiden
  • setup: Detta kommer att ha installationsdetaljer som måste köras innan stmt
  • timer: Detta kommer att ha timervärdet, timeit () har redan ett standardvärde inställt, och vi kan ignorera det.
  • nummer: stmt kommer att köras enligt numret som anges här.