目录

python中的time模块

使用python中的time模块计算代码运行时间

在计算算法的耗时性时,需要通过一些方法计算代码实际运行的时间,在python中time模块集成了一些方法,可以很方便的计算耗时。

几种函数简介

time模块提供各种与时间相关的功能,如当前时间、时间戳等,下面只说明用来计算代码运行时间的几种常用函数,python环境为python3

time.time()

返回当前时间的时间戳(1970元年后的浮点秒数),这个函数容易收到系统时间的影响,所以一般计算代码耗时都不会选择time函数。

time.perf_counter()

返回计时器的精准时间(系统的运行时间),包含整个系统的睡眠时间.这里的睡眠时间指的是人工使用类似 time.sleep() 的额外时间。

使用时需计算两次之间差值。计算耗时时,如果没有人为的睡眠时间,可以使用这个函数。

time.process_time()

返回当前进程执行CPU的时间总和,不包含睡眠时间.使用时需计算两次之间差值作为代码运行时间。

代码测试

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from time import time, perf_counter, process_time, sleep


class TimeDemo:
    def __init__(self):
        pass

    def test_time(self):
        time0 = time()
        for i in range(10000000):
            i = 0
        sleep(2)
        time1 = time()
        print("time function : {0}".format(time1 - time0))

    def test_perf_cnt(self):
        time0 = perf_counter()
        for i in range(10000000):
            i = 0
        sleep(2)
        time1 = perf_counter()
        print("perf_counter function : {0}".format(time1 - time0))

    def test_process_time(self):
        time0 = process_time()
        for i in range(10000000):
            i = 0
        sleep(2)
        time1 = process_time()
        print("process_time function : {0}".format(time1 - time0))


if __name__ == '__main__':
    timedemo = TimeDemo()
    timedemo.test_time()
    timedemo.test_perf_cnt()
    timedemo.test_process_time()