Python Timeit() példákkal

Mi a Python Timeit()?

Python timeit() egy módszer Python könyvtár az adott kódrészlet végrehajtási idejének mérésére. A Python könyvtár 1 milliószor futtatja le a kódutasítást, és megadja a minimális időt az adott kódrészlet-készletből. Python A timeit() egy hasznos módszer, amely segít a kód teljesítményének ellenőrzésében.

Szintaxis

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

paraméterek

  • stmt: Ez azt a kódot veszi fel, amelynek végrehajtási idejét mérni szeretné. Az alapértelmezett érték a „pass”.
  • felépítés: Ez tartalmazza a beállítási részleteket, amelyeket az stmt előtt végre kell hajtani. Az alapértelmezett érték a „pass”.
  • időzítő: Ennek az időzítő értéke lesz, a timeit()-nek már van egy alapértelmezett értéke, és figyelmen kívül hagyhatjuk.
  • szám: Az stmt az itt megadott szám szerint fog végrehajtani. Az alapértelmezett érték 1000000.

A timeit() használatához importálnunk kell a modult az alábbiak szerint:

import timeit

Első példa

Itt van egy egyszerű példa a timeit() függvényre

1. kódpélda

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

output:

0.06127880399999999

Láttunk egy egyszerű példát, amely megadja az egyszerű kódutasítás kimenetének végrehajtási idejét = 10*5, és a végrehajtásához szükséges idő 0.06127880399999999.

Időzítés Több sor a python kódban

A timeit.timeit() többsoros kód végrehajtásának két módja van: a sorokat pontosvesszővel választja el, vagy a kódot karakterláncként hármas idézőjelekkel zárja be.

Itt vannak példák, amelyek bemutatják a működését.

1. példa: Pontosvessző használata

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

output:

The time taken is  0.137031482

2. példa: Tripla idézőjelek használata

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

output:

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

timeit – Módszerek

Itt van 2 fontos időmérő módszer

timeit.default_timer() : Ez visszaadja az alapértelmezett időt, amikor végrehajtja.

timeit.repeat(stmt, beállítás, időzítő, ismétlés, szám) : ugyanaz, mint a timeit() , de ismétléssel a timeit() az ismétlődések számát adja meg.

1. programpélda

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

output:

0.46715912400000004

Példa 2

default_timer() Példa

# testing timeit()
 
import timeit
import random
 
def 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)

output:

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

3. példa: timeit.repeat()

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

output:

 [0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]

A timeit.repeat() a timeit.timeit() függvényhez hasonlóan működik, azzal az egyetlen különbséggel, hogy az ismétlési argumentumban vesz részt, és visszaadja a végrehajtási időt tömb formátumban, az ismétlésszám szerinti értékekkel.

A timeit.timeit() időzítési függvény végrehajtása a parancssori felületen belül

A parancssorban a timeit() függvényben a függvény végrehajtásának szintaxisa a következő:

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

Parancssori paraméterek:

  • -n N: hányszor szeretné végrehajtani a kódot.
  • -r N: a timeit() függvény megismétlődésének száma
  • -s S: ennek beállítási részleteit a program a kód végrehajtása előtt hajtja végre.
  • -t: ehhez használhatja a time.time()
  • -c: ehhez használhatja a time.clock()
  • -h: segítségért
  • kód utasítás: A kód részletei.

Példa

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

A parancssorban belüli végrehajtás másik módja az alábbiak szerint:

Példa

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

Miért a timeit() a legjobb módszer a végrehajtási idő mérésére Python kód?

Íme néhány ok, amiért úgy gondoljuk, hogy a timeit() a legjobb módja a végrehajtási idő mérésének.

  • 1 milliószor futtatja le a kódutasítást, ami az alapértelmezett érték, és ebből visszaadja a minimális időt. Az 1 milliót is növelheti/csökkentheti az argumentumszám időbeli () függvényében történő beállításával.
  • A teszt végrehajtása közben a szemétgyűjtést minden alkalommal letiltja az idő () függvény.
  • A timeit() belsőleg a használt operációs rendszernek megfelelő pontos időt vesz igénybe. Például a time.clock() függvényt fogja használni Windows operációs rendszer és time.time() Mac és Linux számára.

Összegzésként

A Timeit() segítségével lekérjük a megadott kis kód végrehajtási idejét

A timeit()-hez használt paraméterek

  • stmt: Ez azt a kódot veszi fel, amellyel mérni szeretné a végrehajtási időt
  • setup: Ez tartalmazza a beállítás részleteit, amelyeket az stmt előtt végre kell hajtani
  • timer: Ennek az időzítő értéke lesz, a timeit()-nek már van egy alapértelmezett értéke, és figyelmen kívül hagyhatjuk.
  • szám: Az stmt az itt megadott szám szerint fog végrehajtani.