Python中用timeit计时及注意事项
timeit模块本身就是为执行相对可靠的计时操作而设计的,可以帮助我们简单的得到实践中足够好的即时操作。例如:
>>> import timeit
>>> timeit.timeit("x=2+2")
0.05160994882141953
>>> timeit.timeit("x=sum(range(10))")
0.6181725920197181
详细内容参见Python官方文档:https://docs.python.org/3.5/library/timeit.html
注意事项:
使用timeit计时模块时应该避免一些重复执行带来的副作用。因为timeit函数会通过很多次运行相关代码的方式来提高计时精度,所以,如果早先执行的操作会影响其后面的运行,我们可能就遇上麻烦了。例如:我们要对mylist.sort()这样的函数进行计时,该列表只是在首次运行中得到了排序,而在该语句其他的数千次运行中,它都是一个已经排序的列表,这显然会使我们的计时结果偏低。相同的道理也适用于所有涉及迭代式或迭代器的这类穷举操作。