Python Timeit () s príkladmi

Obsah:

Anonim

Čo je Python Timeit ()?

Python timeit () je metóda v knižnici Pythonu na meranie času vykonania daného útržku kódu. Knižnica Python spúšťa vyhlásenie o kóde miliónkrát a poskytuje minimálny čas potrebný z danej sady útržkov kódu. Python timeit () je užitočná metóda, ktorá pomáha pri kontrole výkonu kódu.

Syntax:

timeit.timeit(stmt, setup,timer, number)

Parametre

  • stmt : Bude to trvať kód, pre ktorý chcete zmerať čas vykonania. Predvolená hodnota je „pass“.
  • nastavenie : Bude obsahovať podrobnosti o nastavení, ktoré je potrebné vykonať pred spustením. Predvolená hodnota je „pass“.
  • timer : Toto bude mať hodnotu časovača, timeit () už má nastavenú predvolenú hodnotu a môžeme ju ignorovať.
  • číslo : Značka sa vykoná podľa tu uvedeného čísla. Predvolená hodnota je 10 000 000.

Aby sme mohli pracovať s timeit (), musíme modul importovať, ako je uvedené nižšie:

import timeit

Prvý príklad

Tu je jednoduchý príklad funkcie timeit ()

Príklad kódu 1:

# testing timeit()import timeitprint(timeit.timeit('output = 10*5'))

Výkon:

0.06127880399999999

Videli sme jednoduchý príklad, ktorý nám poskytuje čas vykonania výstupu jednoduchého príkazu kódu = 10 * 5 a čas potrebný na jeho vykonanie je 0,06127880399999999.

Načasovanie viacerých riadkov v kóde python

Existujú dva riadky kódu, ktoré môžete vykonať v timeit.timeit () pomocou bodkočiarky alebo uložením kódu ako reťazca s trojitými úvodzovkami.

Tu sú príklady, ktoré ukazujú, ako to funguje.

Príklad 1: Použitie bodkočiarky

import timeitprint("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))

Výkon:

The time taken is 0.137031482

Príklad 2: Používanie trojitých úvodzoviek

import timeitimport_module = "import random"testcode = '''def test():return random.randint(10, 100)'''print(timeit.repeat(stmt=testcode, setup=import_module))

Výkon:

C:\pythontest>python testtimeit.pyThe time taken is 0.182619178

timeit - Metódy:

Tu sú 2 dôležité metódy timeit

timeit.default_timer () : Týmto sa po vykonaní vráti predvolený čas.

timeit.repeat (stmt, nastavenie, časovač, opakovanie, číslo) : rovnaké ako timeit (), ale s opakovaním sa timeit () nazýva počet opakovaní, ktoré sa zadajú.

Prí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ýkon:

0.46715912400000004

Príklad 2:

default_timer () Prí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ýkon:

The start time is : 0.220261875The time difference is : 0.0004737320000000045

Prí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ýkon:

[0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]

timeit.repeat () funguje podobne ako funkcia timeit.timeit (), s jediným rozdielom, ktorý zaberie v argumente opakovanie a vráti čas vykonania vo formáte poľa s hodnotami podľa čísla opakovania.

Vykonanie časovacej funkcie timeit.timeit () v rozhraní príkazového riadku

Syntax na vykonanie vašej funkcie vo vnútri timeit () na príkazovom riadku je nasledovná:

python -m timeit [-n N] [-r N] [-s S] [-t] [-c] [-h] [code statement… ]

Parametre príkazového riadku:

  • -n N: koľkokrát chcete, aby sa kód spustil.
  • -r N: koľkokrát chcete, aby sa funkcia timeit () opakovala
  • -s S: toto bude mať podrobnosti o nastavení, ktoré sa vykonajú pred vykonaním kódu.
  • -t: na to môžete využiť time.time ()
  • -c: na tento účel môžete využiť time.clock ()
  • -h: o pomoc
  • vyhlásenie o kóde: Podrobnosti o kóde.

Príklad:

C:\pythontest>python -m timeit -s 'text="hello world"'20000000 loops, best of 5: 13.1 nsec per loop

Ďalším spôsobom, ktorý môžete vykonať v príkazovom riadku, je uvedený nižšie:

Príklad:

>>> import timeit>>> print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))The time taken is 0.15048536300000137>>>

Prečo je timeit () najlepším spôsobom na meranie času vykonania kódu Pythonu?

Tu je niekoľko dôvodov, prečo považujeme timeit () za najlepší spôsob merania času vykonania.

  • Spustí výpis kódu miliónkrát, čo je predvolená hodnota, a od toho vám vráti minimálny čas. 1 milión môžete tiež zvýšiť / znížiť nastavením funkcie argumentu number in time ().
  • Počas vykonávania testu je zhromažďovanie odpadu zakaždým zakázané funkciou time ().
  • timeit () interne zaberá presný čas podľa používaného operačného systému. Napríklad použije time.clock () pre operačný systém Windows a time.time () pre mac a Linux.

Zhrnutie

Timeit () sa používa na získanie času vykonania pre daný malý kód

Parametre použité s timeit ()

  • stmt: To bude trvať kód, ktorý chcete merať čas vykonania
  • nastavenie: Bude obsahovať podrobnosti o nastavení, ktoré je potrebné vykonať pred spustením
  • timer: Toto bude mať hodnotu časovača, timeit () už má nastavenú predvolenú hodnotu a môžeme ju ignorovať.
  • number: Značka sa vykoná podľa tu uvedeného čísla.