Python

Python timeit modulis

Python timeit modulis

Programmēšana nav tikai uzdevuma izpilde un tāda rezultāta iegūšana, kādu esam iecerējuši iegūt. Tas ir arī par to, cik ātri programma darbojas un izpilda, lai sasniegtu vēlamo rezultātu. Izmantojot lielāko daļu programmēšanas valodu, nav viegli salīdzināt programmas izpildes ātrumu, un nekad nav viegli noteikt laika daļu konkrētam koda fragmentam, lai saprastu, kura mūsu koda daļa prasa visvairāk laika izpildei. Šis ir jautājums, kuru atrisina Python laiks modulis.

Python timeit modulis

Python laiks modulis ļauj mums noteikt koda fragmenta izpildes laiku, neņemot vērā fona procesus, kas tiek palaisti, lai kods būtu izpildāms. Ja jums ir nepieciešami nedaudz precīzi koda veiktspējas mērījumi laiks ir modulis, uz kuru jāiet.

laiks vienkāršs piemērs

Mēs sāksim, izmantojot laika moduli tieši no komandu uzvednes. moduli timeit var izmantot tieši no CLI, kur mēs varam ievadīt vienkāršu cilpas paziņojumu un noteikt tā laiku, izmantojot parādīto komandu:

$ python --versija
$ python -m timeit '"&".pievienoties (str (n) n diapazonā (1000)) "
$ python -m timeit '"&".pievienoties ([str (n) n diapazonā (1000)]) '
$ python -m timeit '"&".pievienoties (karte (str, diapazons (1000))) '

Lūk, ko mēs atgūsim ar šo komandu:

Izpildes laiks no CLI, izmantojot timeit

Vienā no nākamajām sadaļām mēs uzzināsim, kā mēs varam pārvaldīt veikto cilpu skaitu, lai atrastu optimālo skaitli konkrētās izteiksmes izpildei.

Laika koda daļa

Ja jums ir pamata pitona skripts, kuram vēlaties izmērīt laiku, laiks ir modulis:

importa laiks
# iestatīšanas kods tiek izpildīts tikai vienu reizi
setup_code = "from math import sqrt"
# galvenais koda fragments veiktspējas pārbaudei
code_to_measure = ""
def piemērs ():
mans saraksts = []
x diapazonā (100):
savs saraksts.pievienot (sqrt (x))
""
# timeit paziņojums
drukāt (timeit.timeit (iestatīšana = iestatīšanas_kods,
stmt = kods_pasākumam,
skaitlis = 10000))

Apskatīsim šīs komandas izvadi:

Laika cilpa

Šajā kodā mēs arī redzējām, kā mēs varam kontrolēt to atkārtojumu skaitu, kurus veiks modulis timeit, lai atrastu labāko programmas izpildes laiku.

Izmēriet CLI daudzrindu koda laiku

Mēs varam arī izmērīt laiku kodam, kas iziet cauri vairākām rindām Python CLI. Apskatīsim programmas paraugu, lai to redzētu:

$ python -m timeit -s \
> "linuxhint = " \
> "n diapazonā (1000):" \
> "linuxhint [str (n)] = n"

Lūk, ko mēs atgūsim ar šo komandu:

Daudzrindu kodēšanas laiks CLI

Parasti salīdzinot divus koda blokus

Ja jūs nevēlaties nokļūt problēmu ar CLI izmantošanu un vienkārši vēlaties salīdzināt divas Python programmas, lai jūs zināt, kura no tām darbojas ātrāk, ir diezgan vienkāršs veids, kā to panākt:

importa laiks
sākums = laiks.default_timer ()
funcOne ()
drukāt (timeit.default_timer () - sākums)
sākums = laiks.default_timer ()
funcTwo ()
drukāt (timeit.default_timer () - sākums)

Izmantojot funkciju default_timer (), mēs atkal un atkal sākam laiku, lai atrastu atšķirību tam pašam, kad tas tika pēdējoreiz sākts. To var izmantot tikai tad, ja jums ir labs moduļu stils rakstīt kodu, lai katru koda kodumu varētu izmērīt atsevišķi.

Secinājums

Šajā nodarbībā mēs pētījām, kā mēs varam noteikt laiku mūsu kodam Python un redzēt viņu laika sarežģītību un efektivitāti, kā arī pārstrādāt, ja kods ir pārāk lēns.

WinMouse ļauj jums pielāgot un uzlabot peles rādītāja kustību Windows datorā
Ja vēlaties uzlabot peles rādītāja noklusējuma funkcijas, izmantojiet bezmaksas programmatūru WinMouse. Tas pievieno vairāk funkciju, kas palīdzēs jum...
Peles kreisā klikšķa poga nedarbojas operētājsistēmā Windows 10
Ja ar klēpjdatoru vai galddatoru izmantojat īpašu peli, bet nedarbojas peles kreisās klikšķa poga kādu iemeslu dēļ operētājsistēmā Windows 10/8/7 šeit...
Rakstot Windows 10, kursors lec vai pārvietojas nejauši
Ja atklājat, ka peles kursors automātiski, nejauši lec vai pārvietojas pats, rakstot Windows klēpjdatorā vai datorā, daži no šiem ieteikumiem var palī...