Python — od podstaw do zaawansowanego · Performance i profilowanie
timeit — mikrobenchmarki
Performance i profilowanie
Wprowadzenie
timeit to wbudowany w Pythona moduł do mierzenia czasu MAŁYCH fragmentów kodu. Uruchamia je tysiące razy, odrzuca outliery i zwraca rzetelny pomiar — odporny na szum systemowy. To pierwszy odruch przy pytaniu „która wersja jest szybsza?".
Trzy interfejsy: (1) wiersz poleceń python -m timeit "...", (2) API biblioteczne timeit.timeit(...), (3) magic IPython/Jupytera %timeit i %%timeit. Wszystkie używają tego samego silnika.
Pułapki, których nauczy ta lekcja: różnica time.time() vs time.perf_counter(), dlaczego setup nie jest mierzony, czemu GC ma znaczenie, kiedy repeat() jest lepszy niż timeit(), jak autorange dobiera liczbę powtórzeń, i jak NIE zmierzyć IO/sieci jako CPU-bound.