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.