Python

Python timeit modul

Python timeit modul

Programiranje ni zgolj izpolnitev naloge in pridobitev rezultatov, ki smo jih nameravali dobiti. Gre tudi za to, kako hitro se program izvaja in izvaja, tako da je dosežen želeni izhod. Z večino programskih jezikov ni enostavno primerjati, kako hitro se je izvajal program in nikoli ni enostavno določiti časa, da bi razumeli, kateri del naše kode potrebuje največ časa za izvajanje. To je vprašanje, ki ga rešuje Python timeit modul.

Python timeit modul

Python timeit modul nam omogoča časovno določanje časa izvedbe dela kode, ne da bi upošteval procese v ozadju, ki se izvajajo, da bi koda postala izvedljiva. Če potrebujete nekoliko natančne meritve uspešnosti kode timeit je modul, za katerega se je treba odločiti.

timeit preprost primer

Začeli bomo z uporabo modula timeit neposredno iz ukaznega poziva. Modul timeit lahko uporabimo neposredno iz CLI, kjer lahko vnesemo preprost stavek zanke in ga časovimo s prikazanim ukazom:

$ python --verzija
$ python -m timeit '"&".join (str (n) za n v obsegu (1000)) '
$ python -m timeit '"&".join ([str (n) za n v obsegu (1000)]) '
$ python -m timeit '"&".pridruži (zemljevid (str, obseg (1000))) '

Tukaj dobimo s tem ukazom:

Čas izvedbe iz CLI z uporabo timeit

V enem od poznejših odsekov bomo izvedeli, kako lahko upravljamo število izvedenih zank, da poiščemo optimalno število za izvedbo danega izraza.

Časovno določanje kosa kode

Če imate osnovni skript python, za katerega želite meriti čas, je modul timeit prava pot:

uvozni čas
# nastavitvena koda se izvede samo enkrat
setup_code = "iz matematičnega uvoza sqrt"
# glavni delček kode za preverjanje učinkovitosti
code_to_measure = "'
primer def ():
moj seznam = []
za x v območju (100):
moj seznam.dodaj (sqrt (x))
'"
# izjava timeit
natisni (timeit.timeit (setup = setup_code,
stmt = code_to_measure,
številka = 10000))

Poglejmo izhod za ta ukaz:

Časovna zanka

V tej kodi smo videli tudi, kako lahko nadzorujemo število ponovitev, ki jih bo modul timeit izvedel, da poiščemo najboljši čas izvedbe programa.

Izmerite čas za večvrstično kodo iz CLI

Izmerimo lahko tudi čas za kodo, ki se razteza skozi več vrstic v Python CLI. Poglejmo si vzorčni program, da vidimo:

$ python -m timeit -s \
> "linuxhint = " \
> "za n v obsegu (1000):" \
> "linuxhint [str (n)] = n"

Tukaj dobimo s tem ukazom:

Časovna večvrstična koda na CLI

Na splošno primerjamo dva bloka kode

Če se ne želite spopadati z uporabo CLI-ja in želite primerjati dva programa Python, da boste vedeli, kateri deluje hitreje, obstaja to precej preprost način:

uvozni čas
začetek = čas.default_timer ()
funcOne ()
natisni (timeit.default_timer () - začetek)
začetek = čas.default_timer ()
funcTwo ()
natisni (timeit.default_timer () - začetek)

Z uporabo funkcije default_timer () začnemo znova in znova, da poiščemo razliko za isto, ko je bila nazadnje zagnana. To je mogoče uporabiti samo, če imate dober modularni slog pisanja kode, tako da je mogoče vsako pievo kodo izmeriti ločeno.

Zaključek

V tej lekciji smo preučevali, kako lahko časovno določimo kodo v Pythonu, vidimo njihovo časovno zapletenost in učinkovitost ter nadaljujemo z njo, če je koda prepočasna.

Srednji gumb miške ne deluje v sistemu Windows 10
The srednji gumb miške vam pomaga, da se pomikate po dolgih spletnih straneh in zaslonih z veliko podatkov. Če se to ustavi, boste na koncu uporabili ...
Kako spremeniti levi in ​​desni gumb miške na računalniku z operacijskim sistemom Windows 10
Povsem normalno je, da so vse naprave računalniške miške ergonomsko zasnovane za desničarje. Na voljo pa so miške, ki so posebej zasnovane za levičarj...
Posnemajte klike miške tako, da v Windows 10 lebdite z miško Clickless Mouse
Uporaba miške ali tipkovnice v napačni drži čezmerne uporabe lahko povzroči veliko zdravstvenih težav, vključno s sevom, sindromom karpalnega kanala i...