我使用python timeit查看函数运行所需的时间。
setup = '''from __main__ import my_func import random l = list(range(10000)) random.shuffle(l)''' timeit.timeit('my_func(l)', setup=setup, number=1000)
我得到的结果大于正常情况'检查日期时间。 timeit是否也计算设置所需的时间,如果是,我该如何禁用它?
答案 0 :(得分:0)
docs说:
设置的执行时间从总体计时中排除 执行运行。
答案 1 :(得分:0)
Python 2.0 docs很清楚setup语句没有定时:
主要陈述的时间编号执行。这将执行设置 语句一次,然后返回执行main所需的时间 声明多次,以秒为单位测量为浮动。
但如果您不确定,请在设置声明中加入一个很大的缓慢过程并进行测试,看看它有什么不同。
答案 2 :(得分:0)
my_func(l)
是否会变异l
?这可能会影响时间。
timeit
将运行一次设置,并在每次调用要定时的代码时重用设置创建的对象。此外,它可以调用代码几次,以大致测量其运行速度,并在实际定时运行之前选择迭代次数(尽管不是在您自己指定了运行次数的情况下)。这意味着如果有一个初始快速运行,它将不会被包含在定时结果中。
例如,如果my_func()
是一个写得很糟糕的快速排序功能,当你在一个洗牌列表上调用它时它可能会很快运行,而当你用一个(现在已排序的)列表再次调用它时它会非常慢。 timeit
只能测量非常慢的呼叫。