Python Timeit () su pavyzdžiais

Kas yra „Python Timeit“ ()?

„Python timeit“) yra „Python“ bibliotekos metodas, skirtas matuoti vykdymo laiką, kurį užima duotas kodo fragmentas. „Python“ biblioteka paleidžia kodo sakinį milijoną kartų ir pateikia mažiausią laiką, kuris užtrunka iš pateikto kodo fragmentų rinkinio. „Python timeit“ () yra naudingas metodas, padedantis patikrinti kodo našumą.

Sintaksė:

timeit.timeit(stmt, setup,timer, number)

Parametrai

  • stmt : Tam reikės kodo, kuriam norite išmatuoti vykdymo laiką. Numatytoji reikšmė yra „perduoti“.
  • sąranka : Tai turės išsamią sąrankos informaciją, kurią reikės atlikti prieš stmt. Numatytoji reikšmė yra „perduoti“.
  • laikmatis : tai turės laikmačio vertę, „timeit“ () jau yra nustatyta numatytoji reikšmė, ir mes galime jos nepaisyti.
  • numeris : STMT bus vykdomas pagal čia pateiktą skaičių. Numatytoji vertė yra 1000000.

Norėdami dirbti su „timeit“ (), turime importuoti modulį, kaip parodyta žemiau:

import timeit

Pirmasis pavyzdys

Čia yra paprastas timeit () funkcijos pavyzdys

1 kodo pavyzdys:

# testing timeit()import timeitprint(timeit.timeit('output = 10*5'))

Išvestis:

0.06127880399999999

Mes matėme paprastą pavyzdį, kuris pateikia paprasto kodo sakinio išvesties vykdymo laiką = 10 * 5, o jo vykdymui reikia laiko 0,06127880399999999.

Laikas Kelios eilutės pitono kode

Yra du kodai: timeit.timeit (), galite atlikti kelias kodo eilutes naudodami kabliataškį arba išsaugodami kodą, pridėtą kaip eilutę su trigubomis kabutėmis.

Pateikiame pavyzdžius, kurie parodo jo veikimą.

1 pavyzdys: kabliataškio naudojimas

import timeitprint("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))

Išvestis:

The time taken is 0.137031482

2 pavyzdys: trigubų kabučių naudojimas

import timeitimport_module = "import random"testcode = '''def test():return random.randint(10, 100)'''print(timeit.repeat(stmt=testcode, setup=import_module))

Išvestis:

C:\pythontest>python testtimeit.pyThe time taken is 0.182619178

timeit - metodai:

Čia yra 2 svarbūs laiko nustatymo metodai

timeit.default_timer () : Tai grąžins numatytąjį laiką, kai bus vykdoma.

timeit.repeat (stmt, sąranka, laikmatis, pakartojimas, skaičius) : tas pats, kas timeit (), bet su pakartojimu timeit () vadinamas pakartojimų skaičius.

1 programos pavyzdys:

# testing timeit()import timeitimport_module = "import random"testcode = '''def test():return random.randint(10, 100)'''print(timeit.timeit(stmt=testcode, setup=import_module))

Išvestis:

0.46715912400000004

2 pavyzdys:

default_timer () pavyzdys

# testing timeit()import timeitimport randomdef test():return random.randint(10, 100)starttime = timeit.default_timer()print("The start time is :",starttime)test()print("The time difference is :", timeit.default_timer() - starttime)

Išvestis:

The start time is : 0.220261875The time difference is : 0.0004737320000000045

3 pavyzdys: timeit.repeat ()

# testing timeit()import timeitimport_module = "import random"testcode = '''def test():return random.randint(10, 100)'''print(timeit.repeat(stmt=testcode, setup=import_module, repeat=5))

Išvestis:

[0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]

timeit.repeat () veikia panašiai kaip funkcija timeit.timeit (), turint vienintelį skirtumą, kurį jis pateikia argumente pakartoti ir grąžina vykdymo laiką masyvo formatu su reikšmėmis pagal pakartojimo skaičių.

Laiko funkcijos timeit.timeit () vykdymas komandinės eilutės sąsajoje

Sintaksė jūsų funkcijai atlikti „timeit“ () komandinėje eilutėje yra tokia:

python -m timeit [-n N] [-r N] [-s S] [-t] [-c] [-h] [code statement… ]

Komandinės eilutės parametrai:

  • -n N: kodo vykdymo kartų skaičius.
  • -r N: kiek kartų norite, kad „timeit“ () funkcija pasikartotų
  • -s S: tai turės išsamią sąrankos informaciją, kuri bus vykdoma prieš vykdant kodą.
  • -t: tam galite naudoti time.time ()
  • -c: tam galite naudoti laiką. clock ()
  • -h: už pagalbą
  • kodo išrašas: informacija apie kodą.

Pavyzdys:

C:\pythontest>python -m timeit -s 'text="hello world"'20000000 loops, best of 5: 13.1 nsec per loop

Kitas būdas, kurį galite vykdyti komandinėje eilutėje, yra toks, kaip parodyta žemiau:

Pavyzdys :

>>> import timeit>>> print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))The time taken is 0.15048536300000137>>>

Kodėl „timeit“ () yra geriausias būdas įvertinti „Python“ kodo vykdymo laiką?

Štai keletas priežasčių, kodėl mes manome, kad „timeit“ () yra geriausias būdas įvertinti vykdymo laiką.

  • Tai paleidžia kodo išrašą milijoną kartų, tai yra numatytoji vertė, ir iš to jis grąžins jums minimalų laiką. Taip pat galite padidinti / sumažinti 1 milijoną nustatydami argumento skaičių time () funkciją.
  • Atliekant bandymą, šiukšlių surinkimas kiekvieną kartą išjungiamas ().
  • „timeit“ (viduje) užima tikslų laiką pagal naudojamą operacinę sistemą. Pavyzdžiui, „Windows“ operacinei sistemai jis naudos time.clock (), o „Mac“ ir „Linux“ - time.time ().

Santrauka

„Timeit“ () naudojamas norint gauti vykdymo laiką už nurodytą mažą kodą

Parametrai, naudojami su timeit ()

  • stmt: Tam reikės kodo, kurį norite išmatuoti vykdymo laiką
  • sąranka: Tai turės išsamią sąrankos informaciją, kurią reikės atlikti prieš stmt
  • laikmatis: tai turės laikmačio vertę, „timeit“ () jau yra nustatyta numatytoji reikšmė, ir mes galime jos nepaisyti.
  • numeris: STMT bus vykdomas pagal čia pateiktą skaičių.

Įdomios straipsniai...