首页 > 解决方案 > 检索具有不同参数的 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() ```

标签: pythonplottime

解决方案


我的猜测是index.knnQuery延迟实例化。也许有一些组件是及时编译的,或者数据只是在第一次执行时才读入内存。

如果您对测试模式的实现有疑问,您应该对其进行单元测试。例如,将 index.knnQuery 替换为 sleep 函数 ( from time import sleep; sleep(nns))


推荐阅读