我想提高Python process_time()
函数的精度。
运行以下代码,我经常将elapsed_time
等于0,这是不能令人满意的。
我可以做些什么来提高精确度?
t = time.process_time()
matches = search_kmp(x, p)
elapsed_time = time.process_time() - t
时间测量的目的是算法的基准测试。
答案 0 :(得分:1)
要对小部分Python代码进行基准测试,请使用timeit
模块。它允许您指定要运行的迭代次数,补偿开销,并具有CLI和编程接口。
一个例子:
>>> import timeit
>>> timeit.timeit('"-".join(str(n) for n in range(100))', number=10000)
0.8187260627746582
>>> timeit.timeit('"-".join([str(n) for n in range(100)])', number=10000)
0.7288308143615723
>>> timeit.timeit('"-".join(map(str, range(100)))', number=10000)
0.5858950614929199
答案 1 :(得分:1)
提高精度的唯一真正方法是多次测量并平均结果。某些功能太快,无法准确测量。尝试使用timeit
,https://docs.python.org/3.5/library/timeit.html
import timeit
print(timeit.timeit("search_kmp(x, p)", setup="from __main__ import search_kmp, x, p"))