Programavimas nėra tik užduoties įvykdymas ir norimo gauti rezultato gavimas. Tai taip pat apie tai, kaip greitai programa veikia ir vykdoma, kad būtų pasiektas norimas rezultatas. Naudojant daugumą programavimo kalbų, nėra lengva palyginti, kaip greitai programa baigėsi, ir niekada nėra lengva suplanuoti tam tikrą kodo dalį, kad suprastume, kuri mūsų kodo dalis užima daugiausiai laiko. Tai yra klausimas, kurį išsprendžia „Python“ laiko modulis.
„Python timeit“ modulis
„Python“ laiko modulis leidžia mums suplanuoti kodo dalies vykdymo laiką neatsižvelgiant į foninius procesus, kurie vykdomi, kad kodas būtų vykdomas. Jei jums reikia šiek tiek tikslių matavimų, kaip veikia jūsų kodas laiko yra modulis, kurį reikia naudoti.
laikas yra paprastas pavyzdys
Pradėsime naudodami „timeit“ modulį tiesiai iš komandų eilutės. „timeit“ modulį galima naudoti tiesiai iš CLI, kur mes galime įvesti paprastą ciklo sakinį ir jį suplanuoti naudodami parodytą komandą:
$ python - versija$ python -m timeit '"&".prisijungti (str (n) n diapazone (1000)) "
$ python -m timeit '"&".prisijungti ([str (n) už n diapazone (1000)]) “
$ python -m timeit '"&".prisijungti (žemėlapis (str, diapazonas (1000))) '
Štai ką mes grąžiname naudodami šią komandą:
Vykdymo laikas iš CLI naudojant timeit
Viename iš vėlesnių skyrių sužinosime, kaip mes galime valdyti atliktų kilpų skaičių, kad surastume optimalų skaičių tam tikros išraiškos vykdymui.
Laiko kodo dalis
Jei turite pagrindinį „Python“ scenarijų, kurio laiką norite išmatuoti, „Timeit“ modulis yra kelias:
importo laikas# sąrankos kodas vykdomas tik vieną kartą
setup_code = "from math import sqrt"
# pagrindinis kodo fragmentas, skirtas patikrinti našumą
code_to_measure = ""
def pavyzdys ():
mano sąrašas = []
x x diapazone (100):
mano sąrašas.pridėti (sqrt (x))
""
# timeit pareiškimas
spausdinti (timeit.timeit (sąranka = sąrankos kodas,
stmt = code_to_measure,
skaičius = 10000))
Pažiūrėkime šios komandos išvestį:
Laiko kilpa
Šiame kode mes taip pat matėme, kaip mes galime kontroliuoti pakartojimų skaičių, kurį atliks „Timeit“ modulis, kad surastume geriausią programos vykdymo laiką.
Išmatuokite kelių eilučių kodo iš CLI laiką
Taip pat galime išmatuoti kodo, kuris tęsiasi per kelias „Python“ CLI eilutes, laiką. Pažvelkime į programos pavyzdį, kad pamatytume tai:
$ python -m timeit -s \> "linuxhint = " \
> "n diapazone (1000):" \
> "linuxhint [str (n)] = n"
Štai ką mes grąžiname naudodami šią komandą:
Laiko kelių eilučių kodas CLI
Paprastai lyginant du kodo blokus
Jei nenorite patirti sunkumų naudodami CLI ir tiesiog norite palyginti dvi „Python“ programas, kad žinotumėte, kuri iš jų veikia greičiau, tai pasiekti yra gana paprastas būdas:
importo laikaspradžia = laikas.default_timer ()
funcOne ()
spausdinti (timeit.default_timer () - pradžia
pradžia = laikas.default_timer ()
funcTwo ()
spausdinti (timeit.default_timer () - pradžia)
Naudodami default_timer () funkciją, mes pradedame laiką vėl ir vėl, kad rastume skirtumą tam pačiam, kai jis buvo paskutinį kartą paleistas. Tai galima naudoti tik tada, kai turite gerą modulinį stilių rašyti kodą, kad kiekvieną kodo kodą būtų galima išmatuoti atskirai.
Išvada
Šioje pamokoje mes ištyrėme, kaip galime nustatyti savo kodą „Python“ ir pamatyti jų laiko sudėtingumą bei efektyvumą ir jį apdoroti, jei kodas per lėtas.