Python Timeit() koos näidetega

Mis on Python Timeit()?

Python timeit () on meetod Python teek, et mõõta antud koodilõigu täitmisaega. The Python teek käivitab koodilause 1 miljon korda ja annab minimaalse aja, mis on võetud antud koodilõikude komplektist. Python timeit() on kasulik meetod, mis aitab kontrollida koodi jõudlust.

Süntaks

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

parameetrid

  • stmt: see võtab koodi, mille täitmise aega soovite mõõta. Vaikeväärtus on "pass".
  • seade: sellel on seadistuse üksikasjad, mis tuleb käivitada enne stmt. Vaikeväärtus on "pass".
  • taimer: sellel on taimeri väärtus, timeit()-l on juba vaikeväärtus määratud ja me võime seda ignoreerida.
  • number: stmt käivitatakse vastavalt siin antud numbrile. Vaikeväärtus on 1000000.

Funktsiooni timeit() kasutamiseks peame importima mooduli, nagu allpool näidatud:

import timeit

Esimene näide

Siin on lihtne näide timeit() funktsioonist

Koodi näide 1

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

Väljund:

0.06127880399999999

Oleme näinud lihtsat näidet, mis annab meile lihtsa koodilause väljundi täitmisaja = 10*5 ja selle täitmiseks kuluv aeg on 0.06127880399999999.

Ajastus Pythoni koodis mitu rida

Faili timeit.timeit() abil saate käivitada mitu koodirida kahel viisil, kasutades semikoolonit või salvestades koodi kolmekordsete jutumärkidega stringina.

Siin on näited, mis näitavad selle toimimist.

Näide 1: semikooloni kasutamine

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

Väljund:

The time taken is  0.137031482

Näide 2: kolmekordsete jutumärkide kasutamine

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

Väljund:

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

timeit – meetodid

Siin on 2 olulist ajamõõtmismeetodit

timeit.default_timer() : see tagastab käivitamisel vaikeaja.

timeit.repeat(stmt, seadistus, taimer, kordus, number) : sama, mis timeit() , kuid korduse korral nimetatakse timeit() kordamiste arvu, mis on antud.

Programmi näide 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))

Väljund:

0.46715912400000004

Näiteks 2

default_timer() Näide

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

Väljund:

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

Näide 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))

Väljund:

 [0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]

timeit.repeat() töötab sarnaselt funktsiooniga timeit.timeit(), ainsa erinevusega, et see võtab kordamisargumendi ja annab tagasi täitmisaja massiivivormingus väärtustega, mis vastavad kordusnumbrile.

Ajastusfunktsiooni timeit.timeit() käivitamine käsurea liideses

Süntaks teie funktsiooni täitmiseks käsureal timeit() sees on järgmine:

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

Käsurea parameetrid:

  • -n N: mitu korda soovite koodi käivitada.
  • -r N: kordade arv, mitu korda soovite funktsiooni timeit() kordamise
  • -s S: sellel on seadistuse üksikasjad, mis käivitatakse enne koodi käivitamist.
  • -t: selleks saate kasutada time.time()
  • -c: selleks saate kasutada time.clock()
  • -h: abi saamiseks
  • koodilause: koodi üksikasjad.

Näide

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

Teine võimalus käsureal käivitamiseks on järgmine:

Näide

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

Miks on timeit() parim viis täitmisaja mõõtmiseks Python kood?

Siin on mõned põhjused, miks me arvame, et timeit() on parim viis täitmisaja mõõtmiseks.

  • See käivitab koodilause 1 miljon korda, mis on vaikeväärtus, ja sellest alates tagastab see teile minimaalse kulunud aja. Samuti saate 1 miljonit suurendada/vähendada, määrates argumendi numbri ajas () funktsioonis.
  • Testi sooritamise ajal on prügi kogumine aeg () funktsiooniga iga kord keelatud.
  • timeit() võtab sisemiselt täpse aja vastavalt teie kasutatavale operatsioonisüsteemile. Näiteks kasutab see jaoks time.clock(). Windows operatsioonisüsteem ja time.time() Maci ja Linuxi jaoks.

kokkuvõte

Timeit() kasutatakse antud väikese koodi täitmise aja saamiseks

Parameetrid, mida kasutatakse koos timeit()

  • stmt: see võtab koodi, mille täitmise aega soovite mõõta
  • setup: sellel on seadistuse üksikasjad, mis tuleb käivitada enne stmt
  • taimer: sellel on taimeri väärtus, timeit()-l on juba vaikeväärtus määratud ja me võime seda ignoreerida.
  • number: stmt käivitatakse vastavalt siin antud numbrile.