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 laikssā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.