本文简介如何利用Python module来计算程序运算时间
为什么要计算程序的运行时间
编写程序时,为了比较各种算法或优化算法,需要计算每个算法或重要代码段的运行时间,以去衡量算法的性能或作为代码优化的基准。
比如在定位系统中,UI需要实时地显示程序的计算结果;运行时间过长则会导致高延迟的UI显示,造成信息传达不准确、客户体验差的问题。
方法一:time module
Python有一个名为time的模块来处理与时间有关的任务。
time()函数返回自纪元以来的秒数。
对于Unix系统,1970年1月1日,00:00:00 UTC是纪元(时间开始的点)。
import time
seconds = time.time() #调用time module里面的time()函数
print("Seconds since epoch =", seconds)
参考资料:Python time Module
使用time module计算程序的运行时间:
import time
starttime = time.time()
run = 0
for i in range(1, 5000):
for j in range(1, 5000):
run += i + j
print(f"The result is {run}")
endtime = time.time()
#跑完程序后的时间-跑程序前的时间,结果保留两位浮数点
print(f"It took {endtime-starttime:.2f} seconds to compute")
返回结果:
方法二:timeit module
使用timeit module计算程序的运行时间:
from timeit import timeit #
'''只import timeit会报错
返回 *TypeError: 'module' object is not callable*
原因 *混淆了类名(class)和模块名(module)。
问题出在导入行,你正在导入一个module,而不是一个class;但是module和class有相同的名字。*
'''
def run():
run = 0
for i in range(1, 5000):
for j in range(1, 5000):
run += i + j
return run
# timeit(调用函数run(),运行环境,number=运行次数)
# result = timeit('run()', setup='from __main__ import run', number=1)
result = timeit(run, number=1)
print(f"It took {result:.2f} seconds to compute")
返回结果:
持续学习,欢迎大家留言讨论,谢谢。