Python Timeit () met voorbeelden

Inhoudsopgave:

Anonim

Wat is Python Timeit ()?

Python timeit () is een methode in de Python-bibliotheek om de uitvoeringstijd te meten die het gegeven codefragment in beslag neemt. De Python-bibliotheek voert de code-instructie 1 miljoen keer uit en biedt de minimale tijd die nodig is voor de opgegeven 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)

Parameters

  • stmt : Dit neemt de code waarvoor u de uitvoeringstijd wilt meten. De standaardwaarde is "pass".
  • setup : Dit heeft setup-details die moeten worden uitgevoerd voordat stmt. De standaardwaarde is "pass."
  • timer : Dit heeft de timerwaarde, timeit () heeft al een standaardwaarde ingesteld, en we kunnen deze negeren.
  • nummer : 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 functie timeit ()

Code Voorbeeld 1:

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

Uitgang:

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 er twee waarmee u meerdere regels code kunt uitvoeren in timeit.timeit (), door een puntkomma te gebruiken of door de code op te slaan als een string met drievoudige aanhalingstekens.

Hier zijn voorbeelden die de werking ervan laten zien.

Voorbeeld 1: puntkomma gebruiken

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

Uitgang:

The time taken is 0.137031482

Voorbeeld 2: gebruik van drievoudige aanhalingstekens

import timeitimport_module = "import random"testcode = '''def test():return random.randint(10, 100)'''print(timeit.repeat(stmt=testcode, setup=import_module))

Uitgang:

C:\pythontest>python testtimeit.pyThe time taken is 0.182619178

timeit - Methoden:

Hier zijn twee belangrijke timeit-methoden

timeit.default_timer () : Dit zal de standaardtijd retourneren wanneer het wordt uitgevoerd.

timeit.repeat (stmt, setup, timer, herhaal, nummer) : hetzelfde als timeit (), maar bij herhalen wordt de timeit () het aantal keren dat herhaling wordt gegeven genoemd.

Programmavoorbeeld 1:

# testing timeit()import timeitimport_module = "import random"testcode = '''def test():return random.randint(10, 100)'''print(timeit.timeit(stmt=testcode, setup=import_module))

Uitgang:

0.46715912400000004

Voorbeeld 2:

default_timer () Voorbeeld

# 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)

Uitgang:

The start time is : 0.220261875The time difference is : 0.0004737320000000045

Voorbeeld 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))

Uitgang:

[0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]

timeit.repeat () werkt op dezelfde manier als de functie timeit.timeit (), met als enige verschil het herhaalargument en geeft het de uitvoeringstijd terug in matrixformaat met waarden volgens het herhaalnummer.

Timing-functie timeit.timeit () uitvoeren in de opdrachtregelinterface

De syntaxis om uw functie uit te voeren binnen timeit () op de opdrachtregel is als volgt:

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

Opdrachtregelparameters:

  • -n N: het aantal keren dat u de code wilt laten uitvoeren.
  • -r N: het aantal keren dat u de functie timeit () wilt herhalen
  • -s S: dit heeft installatiedetails die worden uitgevoerd voordat de code wordt uitgevoerd.
  • -t: hiervoor kunt u gebruik maken van time.time ()
  • -c: hiervoor kunt u 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 die u binnen de opdrachtregel kunt uitvoeren, is zoals hieronder wordt 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 te meten?

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, dat is de standaardwaarde, en vanaf dat moment krijgt u de minimale tijd die nodig is. U kunt de 1 miljoen ook verhogen / verlagen door het argumentnummer in te stellen in de functie time ().
  • Tijdens het uitvoeren van de test wordt de garbagecollection elke keer uitgeschakeld door de functie time ().
  • timeit () neemt intern de juiste tijd in volgens uw besturingssysteem dat wordt gebruikt. Het gebruikt bijvoorbeeld time.clock () voor het Windows-besturingssysteem en time.time () voor mac en Linux.

Overzicht

Timeit () wordt gebruikt om de uitvoeringstijd op te halen die nodig is voor de gegeven kleine code

Parameters gebruikt met timeit ()

  • stmt: Dit neemt de code die u wilt om de uitvoeringstijd te meten
  • setup: Dit heeft setup-details die moeten worden uitgevoerd voordat stmt
  • timer: Dit heeft de timerwaarde, timeit () heeft al een standaardwaarde ingesteld, en we kunnen deze negeren.
  • nummer: De stmt wordt uitgevoerd volgens het nummer dat hier wordt gegeven.