python - 检索具有不同参数的 Python 函数的执行时间
问题描述
我的任务是测量执行具有不同参数的函数并绘制结果所需的时间。我正在使用 python 标准库time
,在第一次执行期间发生了一些奇怪的事情。
这是我的结果
如您所见, 的前两个值nns
相同,但在第一次执行期间需要更长的时间
nns = [10, 10, 100, 1000, 10000, 20000, 40000]
# measure retrival time for every value above and save it somewhere
times = []
for k in nns:
point = random.choice(dataset)[0]
start_time = time.time()
ids, distances = index.knnQuery(paris, k=k)
t = time.time() - start_time
times.append(t*100) #miliseconds - for convinience
print(times)
# plot the results
plt.plot(nns, times)
plt.show() ```
解决方案
我的猜测是index.knnQuery
延迟实例化。也许有一些组件是及时编译的,或者数据只是在第一次执行时才读入内存。
如果您对测试模式的实现有疑问,您应该对其进行单元测试。例如,将 index.knnQuery 替换为 sleep 函数 ( from time import sleep; sleep(nns)
)