Python 中如何测量耗时

在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.38091952400282Code 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() - tCode 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 loopCode 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

发表评论