Python

Python timeit-modul

Python timeit-modul

Programmering handler ikke kun om at udføre en opgave og få et output, som vi havde til hensigt at få. Det handler også om, hvor hurtigt et program kører og udføres, så den ønskede output opnås. Med de fleste programmeringssprog er det ikke let at sammenligne, hvor hurtigt out-programmet har kørt, og det er aldrig let at tidsbestemme et bestemt stykke kode for at forstå, hvilken del af vores kode der tager mest tid at udføre. Dette er det problem, der løses af Python timeit modul.

Python timeit-modul

Python timeit modul giver os mulighed for at time udførelsestiden for et stykke kode uden at tage hensyn til baggrundsprocesserne, der køres for at gøre en kode eksekverbar. Hvis du har brug for lidt nøjagtige målinger af, hvordan din kode fungerer timeit er det modul, man skal gå efter.

timeit simpelt eksempel

Vi starter med at bruge timeit-modulet direkte fra kommandoprompten. timeit-modulet kan bruges direkte fra CLI, hvor vi kan indtaste en simpel sløjfeerklæring og time den ved hjælp af den viste kommando:

$ python - version
$ python -m timeit '"&".join (str (n) for n i området (1000)) '
$ python -m timeit '"&".join ([str (n) for n i området (1000)]) '
$ python -m timeit '"&".join (kort (str, rækkevidde (1000))) '

Her er hvad vi kommer tilbage med denne kommando:

Tidspunkt for udførelse fra CLI ved hjælp af timeit

I et af de senere afsnit vil vi lære, hvordan vi kan styre antallet af udførte sløjfer for at finde det optimale antal til udførelsen af ​​et givet udtryk.

Timing af et stykke kode

Hvis du har et grundlæggende python-script, som du vil måle tid til, er timeit-modulet vejen at gå:

importtid det
# opsætningskode udføres kun én gang
setup_code = "fra matematisk import sqrt"
# hovedkodestykke til præstationskontrol
code_to_measure = "'
def eksempel ():
min liste = []
for x i området (100):
min liste.tilføj (sqrt (x))
'"
# timeit erklæring
udskrive (timeit.timeit (setup = setup_code,
stmt = kode_til_måling,
antal = 10000))

Lad os se output for denne kommando:

Timing af en løkke

I denne kode så vi også, hvordan vi kan styre antallet af gentagelser, timeit-modulet udfører for at finde det bedste tidspunkt for udførelse af programmet.

Mål tid for multi-line kode fra CLI

Vi kan også måle tid for kode, der spænder gennem flere linjer i Python CLI. Lad os se på et eksempelprogram for at se dette:

$ python -m timeit -s \
> "linuxhint = " \
> "for n inden for rækkevidde (1000):" \
> "linuxhint [str (n)] = n"

Her er hvad vi kommer tilbage med denne kommando:

Timing af flerlinjekode på CLI

Generelt sammenligner to blokke kode

Hvis du ikke ønsker at komme i besværet med at bruge CLI og bare vil sammenligne to Python-programmer, så du ved, hvilken der kører hurtigere, er der en ret enkel måde at opnå dette på:

importtid det
start = tid det.standardtimer ()
funcOne ()
udskrive (timeit.default_timer () - start)
start = tid det.standardtimer ()
funcTwo ()
udskrive (timeit.default_timer () - start)

Ved at bruge standard_timer () -funktionen starter vi gangene igen og igen for at finde en forskel for det samme, da det sidst blev startet. Dette kan kun bruges, når du har en god modulform til at skrive kode, så hver kode af kode kan måles separat.

Konklusion

I denne lektion studerede vi, hvordan vi kan time vores kode i Python og se deres tidskompleksitet og effektivitet og arbejde over det, hvis koden er for langsom.

Mus Remap dine museknapper forskelligt til anden software med X-Mouse Button Control
Remap dine museknapper forskelligt til anden software med X-Mouse Button Control
Måske har du brug for et værktøj, der kan ændre din muses kontrol med hver applikation, du bruger. Hvis dette er tilfældet, kan du prøve en applikatio...
Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jeg har for nylig læst om Microsoft Sculpt Touch trådløs mus og besluttede at købe den. Efter at have brugt det et stykke tid besluttede jeg at dele m...
Mus AppyMouse pegefelt på skærmen og musemarkør til Windows-tablets
AppyMouse pegefelt på skærmen og musemarkør til Windows-tablets
Tabletbrugere savner ofte musemarkøren, især når de er vante til at bruge bærbare computere. Touchscreen-smartphones og tablets har mange fordele, og ...