13 lines
591 B
Python
13 lines
591 B
Python
import statistics
|
||
import time
|
||
def bench(func, *args, repeats=5, warmup=1):
|
||
"""Запускает func(*args) несколько раз и возвращает медиану и разброс, с."""
|
||
for _ in range(warmup): # прогрев: кэши, JIT, запуск пула
|
||
func(*args)
|
||
times = []
|
||
for _ in range(repeats):
|
||
start = time.perf_counter() # монотонный таймер высокого разрешения
|
||
func(*args)
|
||
times.append(time.perf_counter() - start)
|
||
return statistics.median(times), min(times), max(times)
|