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.

Sammanfatta detta inlรคgg med: