Python Timeit() met voorbeelden
Wat is Python Tijd()?
Python tijd () is een methode in Python bibliotheek om de uitvoeringstijd van het gegeven codefragment te meten. De Python bibliotheek voert de code-instructie 1 miljoen keer uit en geeft de minimale tijd weer die nodig is voor de gegeven set codefragmenten. Python timeit() is een handige methode die helpt bij het controleren van de prestaties van de code.
Syntaxis
timeit.timeit(stmt, setup,timer, number)
Kenmerken
- stmt: Hiervoor is de code nodig waarvan u de uitvoeringstijd wilt meten. De standaardwaarde is โgeslaagdโ.
- setup: Dit zal setup details bevatten die uitgevoerd moeten worden voor stmt. De standaardwaarde is โpass.โ
- timer: Dit zal de timerwaarde hebben, timeit() heeft al een standaardwaarde ingesteld en we kunnen deze negeren.
- aantal: De stmt wordt uitgevoerd volgens het nummer dat hier wordt gegeven. De standaardwaarde is 1000000.
Om met timeit() te werken, moeten we de module importeren, zoals hieronder weergegeven:
import timeit
Eerste voorbeeld
Hier is een eenvoudig voorbeeld van de timeit()-functie
Codevoorbeeld 1
# testing timeit()
import timeit
print(timeit.timeit('output = 10*5'))
Output:
0.06127880399999999
We hebben een eenvoudig voorbeeld gezien dat ons de uitvoeringstijd geeft van de uitvoer van de eenvoudige code-instructie = 10*5, en de tijd die nodig is om deze uit te voeren is 0.06127880399999999.
Timing Meerdere regels in Python-code
Er zijn twee manieren om meerdere regels code uit te voeren in timeit.timeit(): door de regels te scheiden met puntkomma's of door de code als een tekenreeks tussen drievoudige aanhalingstekens te plaatsen.
Hier zijn voorbeelden die de werking ervan laten zien.
Voorbeeld 1: Puntkomma gebruiken
import timeit
print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))
Output:
The time taken is 0.137031482
Voorbeeld 2: gebruik van drievoudige aanhalingstekens
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 โ Methoden
Hier zijn twee belangrijke timeit-methoden
timeit.default_timer() : Dit retourneert de standaardtijd wanneer deze wordt uitgevoerd.
timeit.repeat(stmt, instellingen, timer, herhaling, nummer) : hetzelfde als timeit() , maar bij repeat wordt de timeit() aangeroepen, het aantal keren dat repeat wordt gegeven.
Programmavoorbeeld 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
Voorbeeld 2
default_timer() Voorbeeld
# 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
Voorbeeld 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() werkt vergelijkbaar met de functie timeit.timeit(), met als enige verschil het repeat-argument en geeft de uitvoeringstijd terug in array-indeling met waarden volgens het herhalingsnummer.
Uitvoeren van de timingfunctie timeit.timeit() binnen de opdrachtregelinterface
De syntaxis om uw functie binnen timeit() op de opdrachtregel uit te voeren is als volgt:
python -m timeit [-n N] [-r N] [-s S] [-t] [-c] [-h] [code statement ...]
Commandoregelparameters:
- -n N: het aantal keren dat u wilt dat de code wordt uitgevoerd.
- -r N: het aantal keren dat u wilt dat de timeit()-functie wordt herhaald
- -s S: dit bevat instellingsdetails die worden uitgevoerd vรณรณr de uitvoering van de code.
- -t: hiervoor kun je gebruik maken van time.time()
- -c: hiervoor kun je gebruik maken van time.clock()
- -h: voor hulp
- code statement: De codedetails.
Voorbeeld
C:\pythontest>python -m timeit -s 'text="hello world"' 20000000 loops, best of 5: 13.1 nsec per loop
Een andere manier waarop u binnen de opdrachtregel kunt uitvoeren, is zoals hieronder weergegeven:
Voorbeeld
>>> import timeit
>>> print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))
The time taken is 0.15048536300000137
>>>
Waarom is timeit() de beste manier om de uitvoeringstijd van Python code?
Hier zijn een paar redenen waarom we timeit() beschouwen als de beste manier om de uitvoeringstijd te meten.
- Het voert de code-instructie 1 miljoen keer uit, wat de standaardwaarde is, en op basis daarvan krijgt u de minimaal benodigde tijd terug. U kunt de 1 miljoen ook verhogen/verlagen door het argumentnummer in de functie time () in te stellen.
- Tijdens het uitvoeren van de test wordt de garbagecollection elke keer uitgeschakeld door de functie time ().
- timeit() neemt intern de nauwkeurige tijd op basis van uw besturingssysteem. Het zal bijvoorbeeld time.clock() gebruiken voor Windows besturingssysteem en time.time() voor Mac en Linux.
Samenvatting
Timeit() wordt gebruikt om de uitvoeringstijd van de gegeven kleine code te bepalen
Parameters gebruikt met timeit()
- stmt: Hiervoor is de code nodig waarvan u de uitvoeringstijd wilt meten
- setup: Dit bevat setup-details die moeten worden uitgevoerd vรณรณr stmt
- timer: Dit zal de timerwaarde hebben, timeit() heeft al een standaardwaarde ingesteld en we kunnen deze negeren.
- nummer: De stmt wordt uitgevoerd volgens het nummer dat hier wordt gegeven.
