在Python中,time模块提供了各种与时间相关的函数。然而,在Python 3.3之后的版本中,time.clock()方法被标记为已弃用,并在Python 3.8中完全移除。time.clock()原本用于测量CPU时间,但在不同的操作系统上,其行为并不一致。在Unix系统上,它类似于time.process_time(),而在Windows系统上,它类似于time.perf_counter()。
如果你在Python 3.8或更高版本的代码中尝试使用time.clock(),你会遇到AttributeError: module ‘time’ has no attribute 'clock’这个异常。
import time
start_time = time.clock() # 尝试使用time.clock(),但在Python 3.8中会引发异常
# ... 执行一些操作 ...
end_time = time.clock()
elapsed_time = end_time - start_time
print(f"Elapsed time: 0.0576 seconds")
在Python 3.8中运行上述代码将会导致AttributeError。
time.perf_counter()提供了一个时钟,用于测量短时间间隔,它包括了睡眠时间和系统时间,但不受系统时钟调整的影响。它是跨平台兼容的,并且在Python 3.3及更高版本中都是可用的。
如果你只想测量CPU时间(不包括等待时间),并且你的代码运行在Unix系统上,你可以使用time.process_time()。
import time
start_time = time.process_time() # Unix系统上使用time.process_time()
# ... 执行一些操作 ...
end_time = time.process_time()
elapsed_cpu_time = end_time - start_time
print(f"Elapsed CPU time: {elapsed_cpu_time} seconds")
请注意,time.process_time()在Windows上不可用。