Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Python

Python timeit() – Uitvoeringstijd meten met praktische voorbeelden

Wat is Python timeit()?

Python timeit() is een ingebouwde module ontworpen om de uitvoeringstijd van kleine codefragmenten met hoge precisie te meten. Standaard voert het de instructie één miljoen keer uit en rapporteert de snelste run, wat helpt bij het vergelijken van de prestaties van verschillende implementaties.

Syntaxis

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

Parameters

  • stmt – De te timen code. Standaard is pass.
  • setup – Code die één keer voor stmt wordt uitgevoerd. Standaard is pass.
  • timer – Optionele timerfunctie. De module levert een geschikte standaard.
  • number – Hoe vaak stmt wordt uitgevoerd. Standaard is 1.000.000.

Importeer de module eerst:

import timeit

Voorbeeld 1 – Een eenvoudige expressie timen

# Test een basis rekenkundige operatie
import timeit
print(timeit.timeit("output = 10*5"))

Typische output:

0.06127880399999999

Dit toont de tijd (in seconden) die nodig was voor de snelste van de één miljoen runs.

Meerdere regels timen

timeit kan multi-line code verwerken door statements te scheiden met puntkomma's of door een triple-quoted string door te geven.

Met puntkomma's

import timeit
print("De verstreken tijd is ", timeit.timeit(stmt="a=10;b=10;sum=a+b"))

Output:

De verstreken tijd is 0.137031482

Met triple-quoted strings

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

Output:

C:\pythontest>python testtimeit.py
De verstreken tijd is 0.182619178

Belangrijke methoden

  • timeit.default_timer() – Geeft de huidige tijd terug met de beste beschikbare resolutie.
  • timeit.repeat(stmt, setup, timer, repeat, number) – Voert timeit() herhaaldelijk uit en retourneert een lijst met de beste tijden per run.

Voorbeeld 1 – timeit.timeit() gebruiken

# Test een functie die een willekeurig geheel getal retourneert
import timeit
import_module = "import random"
testcode = '''
def test():
    return random.randint(10, 100)
'''
print(timeit.timeit(stmt=testcode, setup=import_module))

Output:

0.46715912400000004

Voorbeeld 2 – default_timer() gebruiken

# Meet een enkele functie-aanroep
import timeit
import random

def test():
    return random.randint(10, 100)

starttime = timeit.default_timer()
print("De starttijd is :", starttime)
test()
print("Het tijdsverschil is :", timeit.default_timer() - starttime)

Output:

De starttijd is : 0.220261875
Het tijdsverschil is : 0.0004737320000000045

Voorbeeld 3 – timeit.repeat() gebruiken

# Voer de test vijf keer uit en vang de beste tijden op
import timeit
import_module = "import random"
testcode = '''
def test():
    return random.randint(10, 100)
'''
print(timeit.repeat(stmt=testcode, setup=import_module, repeat=5))

Output:

[0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]

Elke entry is de beste tijd voor één iteratie van de 1.000.000 runs.

Commandoregel-gebruik

Je kunt timeit direct vanuit de shell aanroepen:

python -m timeit [-n N] [-r N] [-s S] [-t] [-c] [-h] [code statement ...]
  • -n N – Aantal loops voor het statement.
  • -r N – Hoe vaak het hele timpingsproces herhaald wordt.
  • -s S – Setup-code die één keer voor het timen wordt uitgevoerd.
  • -t – Gebruik time.time() als timer.
  • -c – Gebruik time.clock() als timer.
  • -h – Toon help.

Voorbeeld

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

Een andere handige manier is timeit aan te roepen vanuit de REPL:

import timeit
print("De verstreken tijd is ", timeit.timeit(stmt="a=10;b=10;sum=a+b"))

Output:

De verstreken tijd is 0.15048536300000137

Waarom timeit() het beste hulpmiddel is voor het timen van Python-code

  • Het voert het statement veel keer uit (standaard 1.000.000) en retourneert de snelste run, wat een betrouwbare schatting geeft.
  • Garbage collection wordt tijdens het timen uitgeschakeld, wat voorkomt dat het de resultaten verstoort.
  • Het selecteert automatisch de meest nauwkeurige timer voor jouw besturingssysteem (bijv. time.clock() op Windows, time.time() op macOS/Linux).

Samenvatting

De timeit-module is essentieel voor het benchmarken van korte Python-fragmenten. De parameters zijn duidelijk:

  • stmt – Te timen code.
  • setup – Eenmalige setup-code.
  • timer – Optionele timerfunctie.
  • number – Hoe vaak stmt draait.

Gebruik timeit voor accurate, herhaalbare metingen.

Python

  1. Python: Huidige tijd en tijdzonedata eenvoudig ophalen
  2. Python's time-module beheersen: functies, structs en praktische voorbeelden
  3. Python's time.sleep() onder de knie krijgen: best practices, multithreading en real-world voorbeelden
  4. Python's str.count() beheersen: Karakters & substrings tellen met voorbeelden
  5. Python `format()` strings beheersen met duidelijke voorbeelden
  6. Python's String.find()-methode beheersen: Syntaxis, voorbeelden & alternatieven
  7. Python lambda-functies beheersen: praktische voorbeelden & best practices
  8. Python round()-functie uitgelegd met praktische voorbeelden
  9. Python's map()-functie beheersen: syntaxis, voorbeelden en best practices
  10. Python Counter in collections – Efficiënt tellen, updaten en rekenkundige operaties
  11. type() en isinstance() in Python begrijpen: praktische voorbeelden