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
stmtwordt uitgevoerd. Standaard ispass. - timer – Optionele timerfunctie. De module levert een geschikte standaard.
- number – Hoe vaak
stmtwordt 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– Gebruiktime.time()als timer.-c– Gebruiktime.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
stmtdraait.
Gebruik timeit voor accurate, herhaalbare metingen.
Python
- Python: Huidige tijd en tijdzonedata eenvoudig ophalen
- Python's time-module beheersen: functies, structs en praktische voorbeelden
- Python's time.sleep() onder de knie krijgen: best practices, multithreading en real-world voorbeelden
- Python's str.count() beheersen: Karakters & substrings tellen met voorbeelden
- Python `format()` strings beheersen met duidelijke voorbeelden
- Python's String.find()-methode beheersen: Syntaxis, voorbeelden & alternatieven
- Python lambda-functies beheersen: praktische voorbeelden & best practices
- Python round()-functie uitgelegd met praktische voorbeelden
- Python's map()-functie beheersen: syntaxis, voorbeelden en best practices
- Python Counter in collections – Efficiënt tellen, updaten en rekenkundige operaties
- type() en isinstance() in Python begrijpen: praktische voorbeelden