在Python中如何测试某段代码的执行时间?
本文与大家分享几种方式
注意:不要将打印语句放在希望计时的函数中;否则测量的时间将取决于终端的速度。
用time.time()测量两点之间经过的时间:
import time
start = time.time()
print("hello")
end = time.time()
print(end - start)
Code language: PHP (php)
这样可以得到以秒为单位的执行时间
使用timeit.default_timer
from timeit import default_timer as timer
start = timer()
# ...
end = timer()
print(end - start) # Time in seconds, e.g. 5.38091952400282
Code language: PHP (php)
perf_counteror 及 process_time
Python 3:
由于time.clock()
自Python 3.3 起已弃用,另一个选项是使用time.perf_counter()
系统范围的计时或time.process_time()
进程范围的计时,使用方式与time.clock()
类似:
import time
t = time.process_time()
#do some stuff
elapsed_time = time.process_time() - t
Code language: PHP (php)
注意process_time
不包括睡眠期间经过的时间。
命令行调用timeit
test.py:
def foo():
# print "hello"
return "hello"
Code language: PHP (php)
在命令行可以如下操作
% python -mtimeit -s'import test' 'test.foo()'
1000000 loops, best of 3: 0.254 usec per loop
Code language: JavaScript (javascript)
使用pytictoc
>> from pytictoc import TicToc
>> t = TicToc() # create TicToc instance
>> t.tic() # Start timer
>> # do something
>> t.toc() # Print elapsed time
Elapsed time is 2.612231 seconds.
Code language: PHP (php)
通过如下命令安装:
pip install pytictoc