Python Timeit() esimerkeillä

Mikä on Python Timeit()?

Python timeit() on menetelmä sisällä Python kirjasto mittaamaan tietyn koodinpätkän suoritusaikaa. The Python kirjasto suorittaa koodilausekkeen miljoona kertaa ja tarjoaa vähimmäisajan annetusta koodinpätkäjoukosta. Python timeit() on hyödyllinen menetelmä, joka auttaa tarkistamaan koodin suorituskyvyn.

Syntaksi

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

parametrit

  • stmt: Tämä ottaa koodin, jonka suoritusaikaa haluat mitata. Oletusarvo on "pass".
  • setup: Tämä sisältää asetukset, jotka on suoritettava ennen stmt. Oletusarvo on "hyväksytty".
  • ajastin: Tällä on ajastinarvo, timeit():lle on jo asetettu oletusarvo, ja voimme jättää sen huomiotta.
  • numero: stmt suoritetaan tässä annetun numeron mukaisesti. Oletusarvo on 1000000.

Jotta voimme työskennellä timeit(:n) kanssa, meidän on tuotava moduuli alla olevan kuvan mukaisesti:

import timeit

Ensimmäinen esimerkki

Tässä on yksinkertainen esimerkki timeit()-funktiosta

Koodiesimerkki 1

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

lähtö:

0.06127880399999999

Olemme nähneet yksinkertaisen esimerkin, joka antaa meille yksinkertaisen koodilausekkeen suoritusajan = 10*5, ja sen suorittamiseen kuluva aika on 0.06127880399999999.

Ajoitus Useita rivejä python-koodissa

On kaksi tapaa suorittaa useita koodirivejä timeit.timeit(:ssä): erottamalla rivit puolipisteillä tai sulkemalla koodi merkkijonona kolminkertaisilla lainausmerkeillä.

Tässä on esimerkkejä, jotka osoittavat sen toiminnan.

Esimerkki 1: Puolipisteen käyttö

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

lähtö:

The time taken is  0.137031482

Esimerkki 2: Kolminkertaisten lainausmerkkien käyttö

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

lähtö:

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

timeit – menetelmät

Tässä on 2 tärkeää aikamittausmenetelmää

timeit.default_timer() : Tämä palauttaa oletusajan, kun se suoritetaan.

timeit.repeat(stmt, asetus, ajastin, toisto, numero) : sama kuin timeit() , mutta toistolla timeit() kutsutaan toistokertojen lukumääräksi.

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

lähtö:

0.46715912400000004

Esimerkki 2

default_timer() Esimerkki

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

lähtö:

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

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

lähtö:

 [0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]

timeit.repeat() toimii samalla tavalla kuin timeit.timeit()-funktio, sillä ainoalla erolla se ottaa toistoargumentin ja palauttaa suoritusajan taulukkomuodossa toistonumeron mukaisilla arvoilla.

Suoritetaan ajoitustoimintoa timeit.timeit() komentoriviliittymässä

Syntaksi funktion suorittamiseksi komentorivin timeit() sisällä on seuraava:

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

Komentoriviparametrit:

  • -n N: kuinka monta kertaa haluat koodin suoritettavan.
  • -r N: kuinka monta kertaa haluat timeit()-funktion toistuvan
  • -s S: Tässä on asetukset, jotka suoritetaan ennen koodin suorittamista.
  • -t: tähän voit käyttää aika.aika()
  • -c: tähän voit käyttää aika.kello()
  • -h: apua
  • koodilause: koodin tiedot.

esimerkki

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

Toinen tapa, jolla voit suorittaa komentorivin sisällä, on alla kuvattu:

esimerkki

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

Miksi timeit() on paras tapa mitata suoritusaikaa Python koodi?

Tässä on muutamia syitä, miksi katsomme, että timeit() on paras tapa mitata suoritusaikaa.

  • Se suorittaa koodilausekkeen miljoona kertaa, mikä on oletusarvo, ja siitä lähtien se palauttaa sinulle vähimmäisajan. Voit myös lisätä/vähentää 1 miljoonaa asettamalla argumentin numero aika () -funktiossa.
  • Testin suorittamisen aikana roskien kerääminen on poistettu käytöstä joka kerta aika () -toiminnolla.
  • timeit() ottaa sisäisesti tarkan ajan käytössäsi olevan käyttöjärjestelmän mukaan. Esimerkiksi se käyttää aika.kello() for Windows käyttöjärjestelmä ja time.time() macille ja Linuxille.

Yhteenveto

Timeit()-funktiota käytetään antamaan pienelle koodille kulunut suoritusaika

Timeit():n kanssa käytetyt parametrit

  • stmt: Tämä ottaa koodin, jonka haluat mitata suoritusajan
  • setup: Tämä sisältää asetukset, jotka on suoritettava ennen stmt
  • ajastin: Tällä on ajastinarvo, timeit():lle on jo asetettu oletusarvo, ja voimme jättää sen huomiotta.
  • numero: stmt suoritetaan tässä annetun numeron mukaisesti.