python 代码运行计时函数比较

计时函数

计算python某个程序或者代码块的运行时间, 可以使用如下方法

方法说明
datetime.datetime.now()该方法包含了其他程序使用CPU的时间, 不推荐
time.time()Unix系统下, 建议使用
time.clock()Windows系统下, 建议使用
timeit.default_timer()跨平台使用, 最推荐

time.clock()返回的是处理器时间, 而因为Unixjiffy的缘故, 所以精度不会太高
究竟是使用time.clock(), 还是使用time.time(), 由平台来决定
总概来讲, 在Unix系统中, 建议使用time.time(),
Windows系统中, 建议使用time.clock().
要实现跨平台的精度性, 使用timeit来代替time.

1.datetime.datetime.now

该方法包含了其他程序使用CPU的时间
不推荐

1
2
3
4
5
def test_datetime():
start = datetime.datetime.now()
time.sleep(100)
end = datetime.datetime.now()
print("test datetime():", "%fms" % (float((end - start).microseconds) / 1000))

2.time.time

该方法包含了其他程序使用CPU的时间, 返回值是浮点数
Unix系统下推荐

1
2
3
4
5
def test_time():
start = time.time()
time.sleep(100)
end = time.time()
print("test time():", "%fms" % ((end - start) * 1000))

3.time.clock

只计算程序运行CPU的时间
Windows系统下推荐

1
2
3
4
5
def test_clock():
start = time.clock()
time.sleep(100)
end = time.clock()
print("test clock():", "%fms" % ((end - start) * 1000))

4.timeit.default_timer

实现跨平台的精度性

1
2
3
4
5
def test_timeit():
start = timeit.default_timer()
time.sleep(100)
end = timeit.default_timer()
print("test timeit():", "%fms" % ((end - start) * 1000))

测试代码

结果如图:

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
import time
import timeit
import datetime

SLEEP_TIME = 0.001

def test_datetime():
start = datetime.datetime.now()
time.sleep(SLEEP_TIME)
end = datetime.datetime.now()
print("test datetime():", "%fms" % (float((end - start).microseconds) / 1000))

def test_time():
start = time.time()
time.sleep(SLEEP_TIME)
end = time.time()
print("test time():", "%fms" % ((end - start) * 1000))

def test_clock():
start = time.clock()
time.sleep(SLEEP_TIME)
end = time.clock()
print("test clock():", "%fms" % ((end - start) * 1000))

def test_timeit():
start = timeit.default_timer()
time.sleep(SLEEP_TIME)
end = timeit.default_timer()
print("test timeit():", "%fms" % ((end - start) * 1000))

if __name__ == "__main__":
test_datetime()
test_time()
test_clock()
test_timeit()
-------本 文 结 束 感 谢 您 的 阅 读-------
赞赏一杯咖啡
0%