📅  最后修改于: 2023-12-03 15:34:13.640000             🧑  作者: Mango
在编写Python程序时,经常需要知道程序的运行时间,以便检测优化或比较不同算法的性能。Python提供了多种方法来测量程序的运行时间,本文将介绍其中的几种常用方法。
最简单的方法是使用Python标准库中的time
模块,采用time.time()
函数来获取时间戳,然后计算程序开始和结束的时间戳之差。示例代码如下:
import time
start = time.time()
# 程序代码
end = time.time()
print('程序运行时间为:%.2f秒' % (end - start))
在上述代码中,time.time()
函数返回从1970年1月1日零时开始到现在的秒数。程序中先获取开始时间的时间戳,执行程序代码后获取结束时间的时间戳,两者相减即为程序运行的时间差。
除了真实时间,我们还可以使用CPU时间,即进程在CPU中用掉的时间,来计算程序运行所用的时间。Python标准库中也包含了用于获取CPU时间的函数,即time.process_time()
函数。示例代码如下:
import time
start = time.process_time()
# 程序代码
end = time.process_time()
print('程序运行CPU时间为:%.2f秒' % (end - start))
值得注意的是,time.process_time()
函数所返回的CPU时间仅包含该进程在CPU中运行的时间,不包括进程被暂停或等待I/O的时间。
在Python 3.3版本之后,Python提供了time.perf_counter()
函数来计算程序的运行时间。这个函数返回精度更高的系统性能计数器的值,可以用来计算程序的运行时间、测试性能等。示例代码如下:
import time
start = time.perf_counter()
# 程序代码
end = time.perf_counter()
print('程序运行时间为:%.2f秒' % (end - start))
在该代码中,time.perf_counter()
函数返回的是高精度性能计数器的值,可以更加准确地测量程序的运行时间。
在Python 3.7版本之后,Python提供了time.process_time_ns()
和time.perf_counter_ns()
两个函数,它们与time.process_time()
和time.perf_counter()
函数的作用相同,但返回的是以纳秒为单位的运行时间。示例代码如下:
import time
start = time.process_time_ns()
# 程序代码
end = time.process_time_ns()
print('程序运行CPU时间为:%d纳秒' % (end - start))
start = time.perf_counter_ns()
# 程序代码
end = time.perf_counter_ns()
print('程序运行时间为:%d纳秒' % (end - start))
在使用这些函数时,要注意不同的操作系统可能对它们的实现有所不同。
本文介绍了Python计算程序运行时间的常用方法,包括时间差、CPU时间、perf_counter()函数、process_time_ns()函数和perf_counter_ns()函数。在实际使用中,可以根据具体的需求和操作系统的不同,选择适合自己的方法来测量程序的运行时间。