Co je Python Timeit ()?
Python timeit () je metoda v knihovně Pythonu k měření doby provedení daného fragmentu kódu. Knihovna Pythonu spustí příkaz kódu miliónkrát a poskytuje minimální čas potřebný 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 : To bude trvat kód, pro který chcete měřit čas spuštění. Výchozí hodnota je „pass“.
- setup : Toto bude mít podrobnosti o nastavení, které je třeba provést před stmt. Výchozí hodnota je „pass“.
- timer : Toto bude mít hodnotu časovače, timeit () již má nastavenou výchozí hodnotu a můžeme ji ignorovat.
- number : Značka se spustí podle zde uvedeného čísla. Výchozí hodnota je 10 000 000.
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 ()
Příklad kódu 1:
# testing timeit()import timeitprint(timeit.timeit('output = 10*5'))
Výstup:
0.06127880399999999
Viděli jsme jednoduchý příklad, který nám dává čas provedení jednoduchého výstupu výpisu kódu = 10 * 5, a čas potřebný k jeho provedení je 0,06127880399999999.
Načasování více řádků v kódu pythonu
Existují dva, které můžete spustit více řádků kódu v timeit.timeit (), pomocí středníku nebo uložením kódu uzavřeného jako řetězec s trojitými uvozovkami.
Zde jsou příklady, které ukazují jeho fungování.
Příklad 1: Použití středníku
import timeitprint("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 timeitimport_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.pyThe time taken is 0.182619178
timeit - metody:
Zde jsou 2 důležité metody timeit
timeit.default_timer () : Vrátí výchozí čas při spuštění.
timeit.repeat (stmt, nastavení, časovač, opakování, číslo) : stejné jako timeit (), ale s opakováním se timeit () nazývá počet opakování.
Příklad programu 1:
# testing timeit()import timeitimport_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 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)
Výstup:
The start time is : 0.220261875The time difference is : 0.0004737320000000045
Příklad 3: 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))
Výstup:
[0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]
timeit.repeat () funguje podobně jako funkce timeit.timeit (), s jediným rozdílem, který trvá v argumentu opakování a vrátí čas provedení ve formátu pole s hodnotami podle čísla opakování.
Spuštění funkce časování timeit.timeit () uvnitř rozhraní příkazového řádku
Syntaxe k 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é budou provedeny 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
- prohlášení o kódu: Podrobnosti o 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, jak měřit čas spuštění kódu Pythonu?
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 miliónkrát, což je výchozí hodnota, a z toho vám vrátí minimální čas. Můžete také zvýšit / snížit 1 milion nastavením funkce argumentu v čase ().
- Při provádění testu je uvolňování paměti pokaždé deaktivováno funkcí time ().
- timeit () interně trvá přesný čas podle používaného operačního systému. Například bude používat time.clock () pro operační systém Windows a time.time () pro mac a Linux.
souhrn
Timeit () se používá k získání doby provedení pro daný malý kód
Parametry použité s timeit ()
- stmt: To bude trvat kód, který chcete měřit čas spuště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.
- number: Značka se spustí podle zde uvedeného čísla.