Python Timeit() koos näidetega

⚡ Nutikas kokkuvõte

Python Timeit() mõõdab lühikese koodilõigu täitmisaega, käivitades seda mitu korda ja tagastades minimaalse kestuse. See toetab meetodeid timeit, repeat ja default_timer ning töötab skriptidest või käsurealt.

  • Ajastuse definitsioon: Mõõdab koodilõigu täitmisaega, tagastades paljude käivitamiste jooksul minimaalse väärtuse.
  • 🧩 Parameetrid: stmt, seadistus, taimer ja numbriline kontroll määravad, mis ja kui tihti töötab.
  • 🔁 Meetodid: timeit(), repeat() ja default_timer() pakuvad erinevaid ajastusvalikuid.
  • 💻 Käsurida: Käivita python -m timeit koos lippudega nagu -n, -r ja -s.
  • Miks seda kasutada: Keelab prügikoristust ja valib iga operatsioonisüsteemi jaoks kõige täpsema taimeri.

Python Ajastus()

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

Code Näiteks 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

Timeit.timeit() mitme koodirea käivitamiseks on kaks võimalust: eraldades read semikoolonitega või sulgedes koodi stringina kolmekordsete jutumärkidega.

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.

KKK

timeit.timeit() käivitab lause teatud arv kordi ja tagastab ühe kogukestuse. timeit.repeat() käivitab kogu mõõtmise mitu korda ja tagastab tulemuste loendi, võimaldades teil valida parima.

timeit keelab mõõtmise ajal prügikoristusprotsessi, et taustapuhastus ei moonutaks ajastust. See muudab tulemused järjepidevamaks ja võrreldavamaks, keskendudes üksnes testitava koodilõigu täitmisajale.

Stmt-stringi sees saab lauseid eraldada semikoolonitega või edastada mitmerealise stringi kolmekordsete jutumärkide abil. Funktsioonide puhul defineerige need seadistustes ja kutsuge neid stmt-st.

Tehisintellekt suudab profiilida koodi, tuvastada aeglaseid tsükleid või kulukaid kõnesid, pakkuda välja vektoriseeritud või sisseehitatud alternatiive ja soovitada paremaid andmestruktuure.ping Arendajad keskenduvad optimeerimisele seal, kus timeit näitab suurimaid kitsaskohti.

Jah. Arvestades koodijuppi ja selle timeit-tulemusi, saab tehisintellekt pakkuda välja ümberkirjutusi, näiteks loendi mõistmist, generaatori avaldisi või teekifunktsioone, seejärel käivitate timeit-i uuesti, et kinnitada täiustuse reaalsust.

Võta see postitus kokku järgmiselt: