Python Timeit () ar piemēriem

Satura rādītājs:

Anonim

Kas ir Python Timeit ()?

Python timeit () ir metode Python bibliotēkā, lai izmērītu izpildes laiku, kas vajadzīgs dotajam koda fragmentam. Python bibliotēka koda pārskatu izpilda 1 miljonu reižu un nodrošina minimālo laiku, kas vajadzīgs no norādītās kodu fragmentu kopas. Python timeit () ir noderīga metode, kas palīdz pārbaudīt koda veiktspēju.

Sintakse:

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

Parametri

  • stmt : Tas prasīs kodu, kuram vēlaties izmērīt izpildes laiku. Noklusējuma vērtība ir "izturēt".
  • iestatīšana : tam būs detalizēta informācija par iestatīšanu, kas jāizpilda pirms stmt. Noklusējuma vērtība ir "izturēt".
  • taimeris : tam būs taimera vērtība, timeit () jau ir iestatīta noklusējuma vērtība, un mēs to varam ignorēt.
  • numurs : STMT tiks izpildīts atbilstoši šeit norādītajam skaitlim. Noklusējuma vērtība ir 1000000.

Lai strādātu ar timeit (), mums ir jāimportē modulis, kā parādīts zemāk:

import timeit

Pirmais piemērs

Šeit ir vienkāršs timeit () funkcijas piemērs

1. koda piemērs:

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

Izeja:

0.06127880399999999

Mēs esam redzējuši vienkāršu piemēru, kas mums parāda vienkāršā koda paziņojuma izejas izpildes laiku = 10 * 5, un tā izpildei tiek izmantots laiks 0,06127880399999999.

Laiks Vairākas rindas pitona kodā

Ir divi, kurus varat izpildīt vairākās koda rindās: timeit.timeit (), izmantojot semikolu vai saglabājot kodu, kas pievienots kā virkne ar trīskāršām pēdiņām.

Šeit ir piemēri, kas parāda tā darbību.

1. piemērs: izmantojot semikolu

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

Izeja:

The time taken is 0.137031482

2. piemērs: trīskāršu pēdiņu izmantošana

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

Izeja:

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

timeit - Metodes:

Šeit ir 2 svarīgas timeit metodes

timeit.default_timer () : Tas atgriezīs noklusējuma laiku, kad tas tiks izpildīts.

timeit.repeat (stmt, iestatīšana, taimeris, atkārtojums, skaitlis) : tāds pats kā timeit (), bet ar atkārtojumu timeit () tiek saukts par atkārtojuma reižu skaitu.

Programmas 1. piemērs:

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

Izeja:

0.46715912400000004

2. piemērs:

default_timer () Piemērs

# 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)

Izeja:

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

3. piemērs: 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))

Izeja:

[0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]

timeit.repeat () darbojas līdzīgi funkcijai timeit.timeit (), ar vienīgo atšķirību, ko tā ņem argumentā atkārtot, un atdod izpildes laiku masīva formātā ar vērtībām, kas norādītas atkārtojuma skaitlim.

Laika funkcijas timeit.timeit () izpilde komandrindas saskarnē

Sintakse, lai izpildītu savu funkciju komandrindas timeit () iekšpusē, ir šāda:

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

Komandrindas parametri:

  • -n N: reižu skaits, cik ilgi vēlaties izpildīt kodu.
  • -r N: to reižu skaits, kad vēlaties atkārtot funkciju timeit ()
  • -s S: tam būs iestatīšanas informācija, kas tiks izpildīta pirms koda izpildes.
  • -t: šim nolūkam varat izmantot time.time ()
  • -c: Lai to izdarītu, varat izmantot laiku. clock ()
  • -h: pēc palīdzības
  • koda paziņojums: informācija par kodu.

Piemērs:

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

Vēl viens veids, kā jūs varat izpildīt komandrindas iekšpusē, ir parādīts zemāk:

Piemērs :

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

Kāpēc timeit () ir labākais veids, kā izmērīt Python koda izpildes laiku?

Šeit ir daži iemesli, kāpēc mēs uzskatām, ka timeit () ir labākais veids, kā izmērīt izpildes laiku.

  • Tas izpilda koda paziņojumu 1 miljonu reižu, kas ir noklusējuma vērtība, un no tā tas atgriezīs jums minimālo aizņemto laiku. Varat arī palielināt / samazināt 1 miljonu, iestatot argumenta numuru laikā ().
  • Veicot pārbaudi, atkritumu savākšana tiek atspējota katru reizi pēc laika () funkcijas.
  • timeit () iekšēji aizņem precīzu laiku atbilstoši jūsu izmantotajai operētājsistēmai. Piemēram, Windows operētājsistēmai tā izmantos time.clock () un mac un Linux - time.time ().

Kopsavilkums

Timeit () tiek izmantots, lai iegūtu izpildes laiku, kas tiek patērēts dotajam mazajam kodam

Parametri, kas izmantoti ar timeit ()

  • stmt: Tas prasīs kodu, kuru vēlaties izmērīt izpildes laiku
  • iestatīšana: tam būs detalizēta informācija par iestatīšanu, kas jāizpilda pirms stmt
  • taimeris: tam būs taimera vērtība, timeit () jau ir iestatīta noklusējuma vērtība, un mēs to varam ignorēt.
  • numurs: STMT tiks izpildīts atbilstoši šeit norādītajam skaitlim.