Python Timeit() cu Exemple

⚡ Rezumat inteligent

Python Timeit() măsoară timpul de execuție al unui fragment de cod mic rulându-l de mai multe ori și returnând durata minimă. Acceptă metodele timeit, repeat și default_timer și funcționează din scripturi sau din linia de comandă.

  • ⏱️ Definiția Timeit: Măsoară timpul de execuție al unui fragment de cod, returnând valoarea minimă pe parcursul mai multor execuții.
  • 🧩 parametri: stmt, configurare, cronometru și număr controlează ce se execută și cât de des.
  • 🔁 Metode: timeit(), repeat() și default_timer() oferă diferite opțiuni de temporizare.
  • 💻 Linie de comanda: Rulează comanda python -m timeit cu opțiuni precum -n, -r și -s.
  • ✅ De ce să-l folosești: Dezactivează colectarea gunoiului și alege cel mai precis cronometru pentru fiecare sistem de operare.

Python Timeit()

Ce Este Python Timeit()?

Python timeit() este o metodă în Python bibliotecă pentru a măsura timpul de execuție luat de fragmentul de cod dat. The Python biblioteca rulează instrucțiunea de cod de 1 milion de ori și oferă timpul minim luat din setul dat de fragmente de cod. Python timeit() este o metodă utilă care ajută la verificarea performanței codului.

Sintaxă

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

parametrii

  • stmt: Acesta va lua codul pentru care doriți să măsurați timpul de execuție. Valoarea implicită este „pass”.
  • configurarea: Aceasta va avea detalii de configurare care trebuie executate înainte de stmt. Valoarea implicită este „pass”.
  • timer: Aceasta va avea valoarea timer, timeit() are deja o valoare implicită setată și o putem ignora.
  • număr: Stmt-ul se va executa conform numărului dat aici. Valoarea implicită este 1000000.

Pentru a lucra cu timeit(), trebuie să importam modulul, așa cum se arată mai jos:

import timeit

Primul exemplu

Iată un exemplu simplu de funcție timeit().

Code Exemplu 1

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

ieșire:

0.06127880399999999

Am văzut un exemplu simplu care ne oferă timpul de execuție al instrucțiunii de cod simplu de ieșire = 10*5, iar timpul necesar pentru a-l executa este 0.06127880399999999.

Cronometrare Mai multe linii în codul Python

Există două moduri de a executa mai multe linii de cod în timeit.timeit(): prin separarea liniilor cu punct și virgulă sau prin includerea codului ca șir cu ghilimele triple.

Iată exemple care arată funcționarea acestuia.

Exemplul 1: Utilizarea punctului și virgulă

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

ieșire:

The time taken is  0.137031482

Exemplul 2: Folosind ghilimele triple

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

ieșire:

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

timeit – Metode

Iată 2 metode importante de timp

timeit.default_timer() : Aceasta va returna ora implicită când este executată.

timeit.repeat(stmt, setup, timer, repeat, number) : la fel ca timeit() , dar cu repetare timeit() se numește de câte ori este dat repetiția.

Exemplul de program 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))

ieșire:

0.46715912400000004

Exemplu 2

default_timer() Exemplu

# 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)

ieșire:

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

Exemplul 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))

ieșire:

 [0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]

timeit.repeat() funcționează similar cu funcția timeit.timeit(), cu singura diferență pe care o ia în argumentul repetare și returnează timpul de execuție în format matrice cu valori conform numărului de repetare.

Executarea funcției de sincronizare timeit.timeit() în interfața liniei de comandă

Sintaxa pentru a vă executa funcția în timeit() pe linia de comandă este următoarea:

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

Parametrii liniei de comandă:

  • -n N: de câte ori doriți să se execute codul.
  • -r N: de câte ori doriți ca funcția timeit() să se repete
  • -s S: aceasta va avea detalii de configurare care vor fi executate înainte de executarea codului.
  • -t: pentru aceasta, puteți folosi time.time()
  • -c: pentru aceasta, puteți folosi time.clock()
  • -h: pentru ajutor
  • declarație de cod: detaliile codului.

Exemplu

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

Un alt mod în care puteți executa în interiorul liniei de comandă este așa cum se arată mai jos:

Exemplu

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

De ce este timeit() cel mai bun mod de a măsura timpul de execuție al lui Python cod?

Iată câteva motive pentru care considerăm că timeit() este cea mai bună modalitate de a măsura timpul de execuție.

  • Rulează instrucțiunea de cod de 1 milion de ori, aceasta este valoarea implicită și, din aceasta, vă va returna timpul minim necesar. De asemenea, puteți crește/scădea 1 milion setând numărul argumentului în funcție de timp ().
  • În timpul executării testului, colectarea gunoiului este dezactivată de fiecare dată de funcția time ().
  • timeit() intern ia timpul exact conform sistemului dvs. de operare utilizat. De exemplu, va folosi time.clock() pentru Windows sistem de operare și time.time() pentru Mac și Linux.

Întrebări frecvente

Funcția timeit.timeit() rulează instrucțiunea de un număr setat de ori și returnează un singur timp total. Funcția timeit.repeat() rulează întreaga măsurătoare de mai multe ori și returnează o listă de rezultate, permițându-vă să alegeți cele mai bune rezultate.

Funcția timeit dezactivează colectarea gunoiului în timpul măsurării, astfel încât curățarea în fundal să nu distorsioneze timpul. Acest lucru face ca rezultatele să fie mai consistente și comparabile, concentrându-se exclusiv pe timpul de execuție al fragmentului testat.

Puteți separa instrucțiunile prin punct și virgulă în interiorul șirului stmt sau puteți transmite un șir pe mai multe linii folosind ghilimele triple. Pentru funcții, definiți-le în setup și apelați-le din stmt.

IA poate profila codul, identifica bucle lente sau apeluri costisitoare, sugera alternative vectorizate sau integrate și poate recomanda structuri de date mai bune, ajutând...ping Dezvoltatorii se concentrează pe optimizare acolo unde timeit prezintă cele mai mari blocaje.

Da. Având în vedere un fragment de cod și rezultatele sale timeit, inteligența artificială poate propune rescrieri, cum ar fi înțelegerea listelor, expresii generatoare sau funcții de bibliotecă, apoi rulați din nou timeit pentru a confirma că îmbunătățirea este reală.

Rezumați această postare cu: