如何使用 python timeit 获取运行时间中位数

How to use python timeit to get median runtime

我想对一些python代码进行基准测试(不是我习惯的语言,但我必须在python中做一些比较)。我知道 timeit 是一个很好的工具,我有这样的代码:

n = 10
duration = timeit.Timer(my_func).timeit(number=n)
duration/n

测量函数的平均 运行时间。现在,我想取而代之的是中值时间(原因是我想与我在中值时间得到的东西进行比较,最好在所有情况下使用相同的度量)。现在,timeit 似乎只是 return 完整的 运行 时间,而不是每个人的时间 运行,所以我不确定如何找到中位数 [=21] =]时间。获得它的最佳方法是什么?

您可以改用 repeat 方法,它以列表的形式提供各个时间:

import timeit
from statistics import median

def my_func():
    for _ in range(1000000):
        pass

n = 10
durations = timeit.Timer(my_func).repeat(repeat=n, number=1)
print(median(durations))

Try it online!