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.