timeit 函数详解精准测量小段 Python 代码执行时间的利器
timeit 是 Python 标准库中的一个模块,专门用于精确测量小段代码的执行时间。它通过多次运行代码并取平均值,有效减少系统波动对计时结果的影响,是性能调优和算法比较的常用工具。
最常用的两种方式:
timeit.timeit(stmt='pass', setup='pass', timer=default_timer, number=1000000)python -m timeit "[code]"参数说明:
stmt:要测试的代码语句(字符串)setup:初始化代码(如 import),不会计入耗时number:执行次数,默认为 1,000,000 次import timeit
# 列表推导式
t1 = timeit.timeit('[x**2 for x in range(100)]', number=10000)
# for 循环
t2 = timeit.timeit('''
result = []
for x in range(100):
result.append(x**2)
''', number=10000)
print(f"列表推导式: {t1:.4f} 秒")
print(f"for 循环: {t2:.4f} 秒")
import timeit
t = timeit.timeit(
stmt='math.sqrt(25)',
setup='import math',
number=100000
)
print(f"math.sqrt 耗时: {t:.5f} 秒")
无需写脚本,直接在终端运行:
# 测试一行代码
python -m timeit "sum([x for x in range(100)])"
# 设置初始化语句
python -m timeit -s "import math" "math.sqrt(144)"
适合快速验证代码片段性能。
stmt 中使用 print 等副作用操作timeit.repeat() 获取多次完整测试结果,排除异常值setup 中定义或导入。timeit 默认多次运行可缓解此问题。