📜  python 计算所用时间 - Python (1)

📅  最后修改于: 2023-12-03 15:34:13.640000             🧑  作者: Mango

Python计算所用时间

在编写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时间,即进程在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的时间。

perf_counter()

在Python 3.3版本之后,Python提供了time.perf_counter()函数来计算程序的运行时间。这个函数返回精度更高的系统性能计数器的值,可以用来计算程序的运行时间、测试性能等。示例代码如下:

import time

start = time.perf_counter()

# 程序代码

end = time.perf_counter()
print('程序运行时间为:%.2f秒' % (end - start))

在该代码中,time.perf_counter()函数返回的是高精度性能计数器的值,可以更加准确地测量程序的运行时间。

process_time_ns()和perf_counter_ns()

在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()函数。在实际使用中,可以根据具体的需求和操作系统的不同,选择适合自己的方法来测量程序的运行时间。