Python Timeit() s příklady
Co je to Python Čas ()?
Python timeit() je metoda v Python knihovny k měření doby provedení daného fragmentu kódu. The Python Knihovna spustí příkaz kódu 1 milionkrát a poskytuje minimální dobu potřebnou z dané sady fragmentů kódu. Python timeit() je užitečná metoda, která pomáhá při kontrole výkonu kódu.
Syntax
timeit.timeit(stmt, setup,timer, number)
parametry
- stmt: Tím se převezme kód, u kterého chcete měřit dobu provádění. Výchozí hodnota je „pass“.
- Nastavení: Toto bude mít podrobnosti o nastavení, které je třeba provést před stmt. Výchozí hodnota je „pass“.
- Časovač: Toto bude mít hodnotu časovače, timeit() již má nastavenou výchozí hodnotu a můžeme ji ignorovat.
- číslo: Stmt se provede podle zde uvedeného čísla. Výchozí hodnota je 1000000 XNUMX XNUMX.
Abychom mohli pracovat s timeit(), musíme modul importovat, jak je znázorněno níže:
import timeit
První příklad
Zde je jednoduchý příklad funkce timeit().
Code Příklad 1
# testing timeit()
import timeit
print(timeit.timeit('output = 10*5'))
Výstup:
0.06127880399999999
Viděli jsme jednoduchý příklad, který nám dává čas provedení výstupu jednoduchého příkazu kódu = 10*5 a čas potřebný k jeho provedení je 0.06127880399999999.
Časování Více řádků v kódu pythonu
Existují dva způsoby, jak spustit více řádků kódu v timeit.timeit(): oddělením řádků středníky nebo uzavřením kódu jako řetězce s trojitými uvozovkami.
Zde jsou příklady, které ukazují jeho fungování.
Příklad 1: Použití středníku
import timeit
print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))
Výstup:
The time taken is 0.137031482
Příklad 2: Použití trojitých uvozovek
import timeit
import_module = "import random"
testcode = '''
def test():
return random.randint(10, 100)
'''
print(timeit.repeat(stmt=testcode, setup=import_module))
Výstup:
C:\pythontest>python testtimeit.py The time taken is 0.182619178
timeit – Metody
Zde jsou 2 důležité metody timeit
timeit.default_timer() : Po provedení se vrátí výchozí čas.
timeit.repeat(stmt, setup, timer, repeat, number) : stejné jako timeit() , ale s opakováním se timeit() nazývá, kolikrát je zadáno opakování.
Příklad programu 1
# testing timeit()
import timeit
import_module = "import random"
testcode = '''
def test():
return random.randint(10, 100)
'''
print(timeit.timeit(stmt=testcode, setup=import_module))
Výstup:
0.46715912400000004
Příklad 2
default_timer() Příklad
# 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)
Výstup:
The start time is : 0.220261875 The time difference is : 0.0004737320000000045
Příklad 3: 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))
Výstup:
[0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]
timeit.repeat() funguje podobně jako funkce timeit.timeit(), jen s tím rozdílem, že přebírá argument opakování a vrací čas provedení ve formátu pole s hodnotami podle čísla opakování.
Spuštění funkce časování timeit.timeit() v rozhraní příkazového řádku
Syntaxe pro provedení vaší funkce uvnitř timeit() na příkazovém řádku je následující:
python -m timeit [-n N] [-r N] [-s S] [-t] [-c] [-h] [code statement ...]
Parametry příkazového řádku:
- -n N: kolikrát chcete kód spustit.
- -r N: kolikrát chcete, aby se funkce timeit() opakovala
- -s S: toto bude mít podrobnosti o nastavení, které se provede před spuštěním kódu.
- -t: k tomu můžete využít time.time()
- -c: k tomu můžete využít time.clock()
- -h: o pomoc
- výpis kódu: Podrobnosti kódu.
Příklad
C:\pythontest>python -m timeit -s 'text="hello world"' 20000000 loops, best of 5: 13.1 nsec per loop
Další způsob, jak můžete provést v příkazovém řádku, je uveden níže:
Příklad
>>> import timeit
>>> print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))
The time taken is 0.15048536300000137
>>>
Proč je timeit() nejlepším způsobem měření doby provedení Python kód?
Zde je několik důvodů, proč považujeme timeit() za nejlepší způsob měření doby provádění.
- Spustí příkaz kódu 1 milionkrát, což je výchozí hodnota, a od toho vám vrátí minimální čas. Můžete také zvýšit/snížit 1 milion nastavením čísla argumentu ve funkci time ().
- Při provádění testu je shromažďování paměti pokaždé zakázáno funkcí času ().
- timeit() interně bere přesný čas podle používaného operačního systému. Například použije time.clock() pro Windows operační systém a time.time() pro Mac a Linux.
Shrnutí
Timeit() se používá k získání doby provedení zadaného malého kódu
Parametry používané s timeit()
- stmt: Toto vezme kód, který chcete měřit dobu provádění
- setup: Toto bude mít podrobnosti o nastavení, které je třeba provést před stmt
- timer: Toto bude mít hodnotu časovače, timeit() již má nastavenou výchozí hodnotu a můžeme ji ignorovat.
- číslo: stmt se provede podle zde uvedeného čísla.
