Python Timeit () s příklady

Obsah:

Anonim

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.