Python

Pythoni ajamoodul

Pythoni ajamoodul

Programmeerimine ei tähenda ainult ülesande täitmist ja väljundit, mille kavatseme saada. Samuti on see seotud sellega, kui kiiresti programm töötab ja käivitub, nii et soovitud väljund saavutatakse. Enamiku programmeerimiskeeltega pole lihtne võrrelda, kui kiiresti programm läbi on kulgenud, ja kunagi pole lihtne ajastada konkreetset koodijuppi, et mõista, milline osa meie koodist võtab kõige rohkem aega täitmiseks. Selle küsimuse lahendab Python aeg moodul.

Pythoni ajamoodul

Python aeg moodul võimaldab meil ajastada koodijupi täitmisaega, võtmata arvesse taustaprotsesse, mida käivitatakse koodi käivitamiseks. Kui vajate koodi toimimise veidi täpset mõõtmist aeg on moodul, kuhu minna.

aeg lihtne näide

Alustame mooduli timeit kasutamisest otse käsuviibalt. mooduli timeit saab kasutada otse CLI-st, kuhu saame sisestada lihtsa tsükli lause ja ajastada seda näidatud käsu abil:

$ python --versioon
$ python -m timeit '"&".liitu (str (n) n vahemikus (1000)) "
$ python -m timeit '"&".liitu ([str (n) n vahemikus (1000)]) '
$ python -m timeit '"&".liitu (kaart (str, vahemik (1000))) '

Selle käsuga saame tagasi:

Täitmise aeg CLI-st, kasutades timeit

Ühes hilisemas jaotises õpime, kuidas hallata sooritatud silmuste arvu, et leida antud avaldise täitmiseks optimaalne arv.

Koodijupi ajastamine

Kui teil on põhiline pythoni skript, mille jaoks soovite aega mõõta, on õige moodul timeit:

impordi aeg
# seadistuskood käivitatakse vaid üks kord
setup_code = "matemaatika impordi sqrt-st"
# peamine koodijupp toimivuse kontrollimiseks
code_to_measure = ""
def näide ():
minu nimekiri = []
x-i jaoks vahemikus (100):
minu nimekiri.lisa (sqrt (x))
""
# timeit avaldus
print (timeit.timeit (setup = seadistuse_kood,
stmt = kood_meetmele,
arv = 10000))

Vaatame selle käsu väljundit:

Tsükli ajastus

Selles koodis nägime ka seda, kuidas saame kontrollida korduste arvu, mida moodul timeit teeb, et leida programmile parim täitmise aeg.

Mõõtke CLI mitmerealise koodi aega

Saame mõõta ka Pythoni CLI-s mitut rida läbiva koodi aega. Vaatame selle nägemiseks näidisprogrammi:

$ python -m timeit -s \
> "linuxhint = " \
> "n jaoks vahemikus (1000):" \
> "linuxhint [str (n)] = n"

Selle käsuga saame tagasi:

CLI mitmerealise koodi ajastamine

Üldiselt kahe koodiploki võrdlemine

Kui te ei soovi CLI-ga vaeva näha ja soovite lihtsalt võrrelda kahte Pythoni programmi, et teaksite, milline neist töötab kiiremini, on selle saavutamiseks üsna lihtne viis:

impordi aeg
algus = aeg.default_timer ()
funcOne ()
print (timeit.default_timer () - algus
algus = aeg.default_timer ()
funcTwo ()
print (timeit.default_timer () - algus

Funktsiooni default_timer () abil alustame kordi ja kordi, et leida erinevus samast ajast, kui seda viimati alustati. Seda saab kasutada ainult siis, kui teil on hea modulaarne stiili kirjutamine, nii et iga koodi pikkust saab mõõta eraldi.

Järeldus

Selles õppetükis uurisime, kuidas saaksime Pythonis oma koodi ajastada, näha nende keerukust ja tõhusust ning töötada üle, kui kood on liiga aeglane.

Viis parimat ergonoomilist arvutihiiretoodet Linuxile
Kas pikaajaline arvuti kasutamine põhjustab valu randmes või sõrmedes?? Kas teil on liigeste jäikus ja peate pidevalt käsi suruma? Kas tunnete põletav...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
X-Mouse Button Control abil saate hiire nupud erinevates tarkvarades erinevalt ümber teha
Võib-olla vajate tööriista, mis võiks muuta teie hiire juhtimissüsteemi iga kasutatava rakendusega. Sel juhul võite proovida rakendust nimega X hiiren...