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.

Shrňte tento příspěvek takto: