„Python“

„Python timeit“ modulis

„Python timeit“ modulis

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 laikas
pradž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.

5 geriausios žaidimų fiksavimo kortos
Visi mes matėme ir pamėgome srautinius žaidimus „YouTube“. „PewDiePie“, „Jakesepticye“ ir „Markiplier“ yra tik vieni iš geriausių žaidėjų, kurie uždir...
Kaip sukurti žaidimą „Linux“
Prieš dešimtmetį nedaugelis „Linux“ vartotojų numatė, kad jų mėgstama operacinė sistema vieną dieną bus populiari komercinių vaizdo žaidimų žaidimų pl...
Atvirojo kodo komercinių žaidimų variklių uostai
Nemokami atvirojo kodo ir įvairių platformų žaidimų varikliai gali būti naudojami žaidžiant senus ir kai kuriuos gana naujus žaidimų pavadinimus. Šiam...