Python

Modul python timeit

Modul python timeit

Programovanie nie je len o splnení úlohy a získaní výstupu, ktorý sme chceli získať. Ide tiež o to, ako rýchlo program beží a vykonáva sa, aby sa dosiahol požadovaný výstup. U väčšiny programovacích jazykov nie je ľahké porovnať, ako rýchlo sa program spustil, a nikdy nie je ľahké načasovať určitú časť kódu, aby ste pochopili, ktorá časť nášho kódu je vykonaná najviac času. Toto je problém, ktorý rieši Python timeit modul.

Modul python timeit

Python timeit modul nám umožňuje načasovať čas vykonania časti kódu bez zohľadnenia procesov na pozadí, ktoré sú spustené, aby bol kód spustiteľný. Ak potrebujete mierne presné merania výkonnosti kódu timeit je modul, do ktorého treba ísť.

timeit jednoduchý príklad

Začneme použitím modulu timeit priamo z príkazového riadku. modul timeit je možné použiť priamo z CLI, kde môžeme vložiť jednoduchý príkaz slučky a načasovať ho pomocou zobrazeného príkazu:

$ python --verzia
$ python -m timeit '"&".join (str (n) for n in range (1000)) ''
$ python -m timeit '"&".join ([str (n) for n in range (1000)]) ''
$ python -m timeit '"&".join (map (str, range (1000))) ''

S týmto príkazom sa dostaneme späť:

Čas vykonania z CLI pomocou timeit

V jednej z neskorších častí sa dozvieme, ako môžeme riadiť počet vykonaných slučiek, aby sme našli optimálny počet na vykonanie daného výrazu.

Načasovanie kúsku kódu

Ak máte základný skript v Pythone, pre ktorý chcete merať čas, použite modul timeit:

importovať čas
# nastavovací kód sa vykoná iba raz
setup_code = "z matematického importu sqrt"
# hlavný úryvok kódu na kontrolu výkonu
code_to_measure = "'
def príklad ():
mylist = []
pre x v rozsahu (100):
môj zoznam.pridať (sqrt (x))
„“
# timeit výpis
tlačiť (timeit.timeit (setup = setup_code,
stmt = code_to_measure,
číslo = 10 000))

Pozrime sa na výstup pre tento príkaz:

Načasovanie slučky

V tomto kóde sme tiež videli, ako môžeme kontrolovať počet opakovaní, ktoré modul timeit vykoná, aby sme našli najlepší čas vykonania programu.

Zmerajte čas pre viacriadkový kód z CLI

Môžeme tiež merať čas pre kód, ktorý sa rozprestiera cez viac riadkov v rozhraní Python CLI. Pozrime sa na ukážkový program, aby sme videli toto:

$ python -m timeit -s \
> "linuxhint = " \
> "pre n v rozsahu (1 000):" \
> "linuxhint [str (n)] = n"

S týmto príkazom sa dostaneme späť:

Načasovanie viacriadkového kódu v rozhraní CLI

Všeobecne sa porovnávajú dva bloky kódu

Ak sa nechcete trápiť s používaním CLI a chcete iba porovnať dva programy Pythonu, aby ste vedeli, ktorý z nich beží rýchlejšie, môžete to dosiahnuť celkom jednoduchým spôsobom:

importovať čas
start = timeit.default_timer ()
funcOne ()
tlačiť (timeit.default_timer () - štart)
start = timeit.default_timer ()
funcTwo ()
tlačiť (timeit.default_timer () - štart)

Použitím funkcie default_timer () začíname časy znova a znova, aby sme našli ten istý rozdiel, keď bol naposledy spustený. Toto je možné použiť, iba ak máte dobrý modulárny štýl písania kódu, aby bolo možné každú časť kódu merať osobitne.

Záver

V tejto lekcii sme študovali, ako môžeme časovať náš kód v Pythone a zistiť jeho časovú zložitosť a efektívnosť a prepracovať ho, ak je kód príliš pomalý.

Top 5 ergonomických produktov pre počítačové myši pre Linux
Spôsobuje dlhodobé používanie počítača bolesť zápästia alebo prstov? Trpíte stuhnutými kĺbmi a neustále si musíte podávať ruky? Cítite pálivú bolesť z...
Ako zmeniť nastavenie myši a touchpadu pomocou systému Xinput v systéme Linux
Väčšina distribúcií systému Linux sa štandardne dodáva s knižnicou „libinput“ na spracovanie vstupných udalostí v systéme. Dokáže spracovať vstupné ud...
S ovládaním pomocou myši X-Mouse môžete tlačidlá myši premapovať odlišne pre iný softvér
Možno budete potrebovať nástroj, ktorý by mohol zmeniť ovládanie myši pri každej aplikácii, ktorú používate. Ak je to váš prípad, môžete vyskúšať apli...