Pytonorm

Python timeit-modul

Python timeit-modul

Programmering handlar inte bara om att utföra en uppgift och få en output som vi tänkte få. Det handlar också om hur snabbt ett program körs och körs så att önskad effekt uppnås. Med de flesta programmeringsspråken är det inte lätt att jämföra hur snabbt programmet har körts och det är aldrig lätt att tidsbestämma en viss kod för att förstå vilken del av vår kod som tar mest tid att köra. Det här är problemet som löses av Python timeit modul.

Python timeit-modul

Pytonorm timeit modulen tillåter oss att tidpunkten för exekveringstiden för en kod utan att ta hänsyn till bakgrundsprocesserna som körs för att göra en kod körbar. Om du behöver lite noggranna mätningar av hur din kod fungerar timeit är modulen att gå efter.

timeit enkelt exempel

Vi börjar med att använda timeit-modulen direkt från kommandotolken. timeit-modulen kan användas direkt från CLI där vi kan mata in ett enkelt loop-uttalande och tid det med det visade kommandot:

$ python --version
$ python -m timeit '"&".gå med (str (n) för n inom intervallet (1000)) '
$ python -m timeit '"&".gå med ([str (n) för n inom intervallet (1000)]) '
$ python -m timeit '"&".gå med (karta (str, intervall (1000))) '

Här är vad vi får tillbaka med det här kommandot:

Tid för utförande från CLI med timeit

I ett av de senare avsnitten kommer vi att lära oss hur vi kan hantera antalet loopar som utförs för att hitta det optimala antalet för utförandet av ett givet uttryck.

Timar en kod

Om du har ett grundläggande python-skript som du vill mäta tid för, är timeit-modulen vägen att gå:

importera tid det
# installationskod körs bara en gång
setup_code = "från matematisk import sqrt"
# huvudkodavsnitt för prestandakontroll
code_to_measure = "'
def exempel ():
min lista = []
för x i intervallet (100):
min lista.lägg till (sqrt (x))
'"
# timeit uttalande
skriva ut (timeit.timeit (setup = setup_code,
stmt = kod_till_mätning,
antal = 10000))

Låt oss se utdata för det här kommandot:

Timing en slinga

I den här koden såg vi också hur vi kan kontrollera antalet repetitioner som timeit-modulen kommer att utföra för att hitta den bästa tiden för körning av programmet.

Mät tid för flera linjekod från CLI

Vi kan också mäta tid för kod som sträcker sig över flera rader i Python CLI. Låt oss titta på ett exempelprogram för att se detta:

$ python -m timeit -s \
> "linuxhint = " \
> "för n inom intervall (1000):" \
> "linuxhint [str (n)] = n"

Här är vad vi får tillbaka med det här kommandot:

Tidtagning av flera linjekoder på CLI

Generellt jämför två kodblock

Om du inte vill ha problem med att använda CLI och bara vill jämföra två Python-program så att du vet vilken som går snabbare finns det ett ganska enkelt sätt att uppnå detta:

importera tid det
start = tid det.default_timer ()
funcOne ()
skriva ut (timeit.default_timer () - start)
start = tid det.standard_timer ()
funcTwo ()
skriva ut (timeit.default_timer () - start)

Genom att använda funktionen default_timer () startar vi tiderna om och om igen för att hitta en skillnad för samma när den senast startades. Detta kan bara användas när du har en bra modulform för att skriva kod så att varje kod kan mätas separat.

Slutsats

I den här lektionen studerade vi hur vi kan tida vår kod i Python och se deras tidskomplexitet och effektivitet och arbeta över den om koden är för långsam.

Hur man visar FPS-räknare i Linux-spel
Linux-spel fick ett stort tryck när Valve tillkännagav Linux-stöd för Steam-klient och deras spel 2012. Sedan dess har många AAA- och indiespel tagit ...
Hur man laddar ner och spelar Sid Meier's Civilization VI på Linux
Introduktion till spelet Civilization 6 är ett modernt intag av det klassiska konceptet som introducerades i serien Age of Empires-spel. Idén var gans...
Hur man installerar och spelar Doom på Linux
Introduktion till Doom Doom-serien har sitt ursprung på 90-talet efter att den ursprungliga Doom släpptes. Det blev en omedelbar hit och från den tide...