如何使用 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))
我想对一些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))