def time_call(func, setup=None, maxtime=1, bestof=10):
"""
timeit() wrapper which tries to get as accurate a measurement as possible w/in maxtime seconds.
:returns:
``(avg_seconds_per_call, log10_number_of_repetitions)``
"""
from timeit import Timer
from math import log
timer = Timer(func, setup=setup or '')
number = 1
end = tick() + maxtime
while True:
delta = min(timer.repeat(bestof, number))
if tick() >= end:
return delta/number, int(log(number, 10))
number *= 10
评论列表
文章目录