在 Python 中如何准确地测量代码执行时间?
在Python中,有多种方法可以准确地测量代码的执行时间。以下是一些常用的方法:
-
使用
time
模块:time
模块提供了一些函数来测量经过的时间,例如time.time()
和time.perf_counter()
。time.time()
提供次秒精度,但精度因平台而异1311。time.perf_counter()
则是用来精确测量代码执行时间的计时函数,它返回从某个固定但随机选取的时间点到函数被调用时的总时间,以浮点秒表示9。 -
使用
timeit
模块:timeit
模块提供了一种简单的方法来计算一小段Python代码的耗时。它允许创建一个Timer
实例,并使用repeat()
或timeit()
方法来执行代码多次,以获得更准确的平均执行时间345。timeit
模块还提供了命令行接口,可以直接在命令行中使用,也可以通过导入模块进行调用14。 -
使用
cProfile
模块和line_profiler
库:这些工具可以提供更详细的性能分析,包括每个函数的调用次数和执行时间。cProfile
是Python标准库中的一个模块,而line_profiler
是一个第三方库,它们可以帮助开发者找出程序中的性能瓶颈2。 -
多次重复计时:由于系统负载和其他程序的影响,单次计时可能不够准确。为了获得更精确的结果,可以多次重复计时并使用最佳时间。
timeit
模块的-r
选项允许指定重复次数,默认为5次81819。 -
使用
default_timer
:default_timer()
函数可以测量可能受到在同一台机器上运行的其他程序影响的时间。在需要精确计时时,最好的做法是重复几次计时并使用最佳时间1819。 -
使用
time.process_time()
:这个函数可以用来测量CPU时间,它只计算程序执行的时间,不包括睡眠时间1819。
datetime.now() 1 | 获取当前时间 包含年月日时分秒微秒。 |
使用 time 模块测量执行时间 2 | time 模块 多种方法测量 Python 脚本执行时间。 |
创建 Timer 实例并执行 repeat() 方法 3 | timeit 模块 测量小代码片段执行时间。 |
使用 timeit() 方法执行计时 4 | timeit 模块 精确测量代码执行时间。 |
time.perf_counter() 计时函数 9 | 精确计时 返回从固定点到调用时的总时间。 |
time.process_time() 测量 CPU 时间 18 | 测量 CPU 时间 避免其他程序影响。 |
timeit模块5 | 代码执行时间测量 使用timeit模块可以测量小段Python代码的执行时间。 |
time模块7 | 时间测量工具 Python标准库中的time模块提供函数测量经过的时间。 |
time.perf_counter()函数9 | 高精度计时 time.perf_counter()提供精确的代码执行时间测量。 |
time.process_time()函数18 | CPU时间测量 测量CPU时间,可用于需要精确计时的场景。 |
time.time()函数13 | 次秒精度时间测量 提供次秒精度的时间测量,适用于执行时间测量。 |