Programmering handler ikke bare om å utføre en oppgave og få en utdata vi hadde tenkt å få. Det handler også om hvor raskt et program kjører og utføres slik at ønsket utgang oppnås. Med de fleste av programmeringsspråk er det ikke lett å sammenligne hvor raskt ut -programmet har kjørt, og det er aldri lett å tid til et bestemt stykke kode for å forstå hvilken del av koden vår tar mest tid til å utføre. Dette er problemet som løses av Python TIDIT modul.
Python Timeit -modul
Python TIDIT Modul lar oss tid til utførelsestiden for et kode uten å ta hensyn til bakgrunnsprosessene som kjøres for å gjøre en kode kjørbar. Hvis du trenger litt nøyaktige målinger av hvordan koden din utfører TIDIT er modulen å gå for.
Tid det enkelt eksempel
Vi starter med å bruke TIMEIT -modulen direkte fra ledeteksten. Tidsmodul kan brukes direkte fra CLI hvor vi kan legge inn en enkel sløyfeuttalelse og tid den ved å bruke den viste kommandoen:
$ Python -Versjon
$ python -m timeit '"&".Bli med (str (n) for n i rekkevidde (1000)) '
$ python -m timeit '"&".Bli med ([str (n) for n i rekkevidde (1000)]) '
$ python -m timeit '"&".bli med (kart (str, rekkevidde (1000))) '
Dette er hva vi kommer tilbake med denne kommandoen:
Utførelsestid fra CLI ved å bruke timeit
I en av de senere seksjonene lærer vi hvordan vi kan administrere antall løkker som er utført for å finne det optimale antallet for utførelse av et gitt uttrykk.
Timing et kode stykke
Hvis du har et grunnleggende Python -skript som du vil måle tid for, er Timeit -modulen veien å gå:
Importer tid
# Oppsettkode utføres bare en gang
setup_code = "Fra matematikkimport sqrt"
# Hovedkodeutdrag for ytelseskontroll
code_to_measure = "'
def eksempel ():
myList = []
for x i rekkevidde (100):
min liste.vedlegg (sqrt (x))
'"
# Timeit -uttalelse
trykk (Timeit.Timeit (Setup = setup_code,
STMT = CODE_TO_MEASJE,
nummer = 10000)))
La oss se utdataene for denne kommandoen:
Timing en sløyfe
I denne koden så vi også hvordan vi kan kontrollere antall repetisjoner Timeit -modulen vil utføre for å finne den beste utførelsestidspunktet for programmet.
Mål tid for flerlinjekode fra CLI
Vi kan også måle tid for kode som spenner over flere linjer i Python CLI. La oss se på et eksempelprogram for å se dette:
$ python -m timeit -s \
> "linuxHint = " \
> "for n i rekkevidde (1000):" \
> "linuxhint [str (n)] = n"
Dette er hva vi kommer tilbake med denne kommandoen:
Timing Multi-line kode på CLI
Generelt sammenligning av to blokker med kode
Hvis du ikke vil komme inn i en problem på å bruke CLI og bare vil sammenligne to Python -programmer, slik at du vet hvilken som løper raskere, er det en ganske enkel måte å oppnå dette på:
Importer tid
start = tid.standard_timer ()
funcone ()
trykk (Timeit.Default_timer () - Start)
start = tid.standard_timer ()
functwo ()
trykk (Timeit.Default_timer () - Start)
Ved å bruke standard_timer () -funksjonen, starter vi tidene igjen og igjen for å finne en forskjell for det samme når det sist ble startet. Dette kan bare brukes når du har god modulær skrivekode, slik at hver kodepinne kan måles separat.
Konklusjon
I denne leksjonen studerte vi hvordan vi kan tid.