Python Timeit() med exempel
Vad är Python Timeit()?
Python timeit() är en metod i Python bibliotek för att mäta exekveringstiden som det givna kodavsnittet tar. De Python biblioteket kör kodsatsen 1 miljon gånger och tillhandahåller den minsta tid som tas från den givna 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)
Driftparametrar
- stmt: Detta tar koden för vilken du vill mäta exekveringstiden. Standardvärdet är "pass".
- inställning: Detta kommer att ha inställningsdetaljer som måste köras innan stmt. Standardvärdet är "pass."
- Timern: Detta kommer att ha timervärdet, timeit() har redan ett standardvärde inställt, och vi kan ignorera det.
- antal: 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()-funktionen
Kodexempel 1
# testing timeit() import timeit print(timeit.timeit('output = 10*5'))
Produktion:
0.06127880399999999
Vi har sett ett enkelt exempel som ger oss exekveringstiden för den enkla kodsatsens utdata = 10*5, och tiden det tar att exekvera den är 0.06127880399999999.
Timing Flera rader i python-kod
Det finns två sätt att köra flera rader kod i timeit.timeit(): genom att separera raderna med semikolon eller omsluta koden som en sträng med tre citattecken.
Här är exempel som visar hur det fungerar.
Exempel 1: Använda semikolon
import timeit print("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 tredubbla citattecken
import timeit import_module = "import random" testcode = ''' def test(): return random.randint(10, 100) ''' print(timeit.repeat(stmt=testcode, setup=import_module))
Produktion:
C:\pythontest>python testtimeit.py The time taken is 0.182619178
timeit – Metoder
Här är 2 viktiga timeit-metoder
timeit.default_timer() : Detta returnerar standardtiden när den körs.
timeit.repeat(stmt, setup, timer, repeat, number) : samma som timeit() , men med repeat kallas timeit() antalet gånger som repeat ges.
Programexempel 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))
Produktion:
0.46715912400000004
Exempelvis 2
default_timer() Exempel
# 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)
Produktion:
The start time is : 0.220261875 The time difference is : 0.0004737320000000045
Exempel 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))
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 den tar i repeat-argumentet och ger tillbaka exekveringstiden i arrayformat med värden enligt repeteringsnumret.
Kör timingfunktionen timeit.timeit() i kommandoradsgränssnittet
Syntaxen för att utföra din funktion inuti timeit() på kommandoraden är följande:
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 inställningsdetaljer som kommer att exekveras innan koden körs.
- -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
- kodsats: Koddetaljerna.
Exempelvis
C:\pythontest>python -m timeit -s 'text="hello world"' 20000000 loops, best of 5: 13.1 nsec per loop
Ett annat sätt du kan köra inuti kommandoraden är som visas nedan:
Exempelvis
>>> 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 koda?
Här är några anledningar till varför vi anser timeit() är det bästa sättet att mäta exekveringstiden.
- Den kör kodsatsen 1 miljon gånger som är standardvärdet, och från det kommer den att returnera den minsta tid som det tar. Du kan också öka/minska 1 miljon genom att ställa in argumentnumret i tid ()-funktionen.
- Medan testet körs inaktiveras sophämtningen varje gång efter tid ()-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 koden som ges
Parametrar som används med timeit()
- stmt: Detta tar koden du vill mäta exekveringstiden
- setup: Detta kommer att ha inställningsdetaljer 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.