timeit 模块详解timeit 是 Python 标准库中用于精确测量小段代码执行时间的强大工具。它通过多次运行代码并取平均值,有效排除系统干扰,帮助开发者进行性能分析和优化。
time.time() 的误差(如系统调度、垃圾回收等)timeit.timeit() 函数import timeit
# 测试一个简单表达式
elapsed = timeit.timeit('sum([1, 2, 3, 4, 5])', number=100000)
print(f"耗时: {elapsed:.6f} 秒")
import timeit
def my_function():
return [i**2 for i in range(100)]
# 使用 setup 导入函数
elapsed = timeit.timeit('my_function()', setup='from __main__ import my_function', number=10000)
print(f"函数执行耗时: {elapsed:.6f} 秒")
Timer 类(面向对象方式)import timeit
t = timeit.Timer(stmt='[x*2 for x in range(100)]')
print(f"最快一次耗时: {min(t.repeat(repeat=5, number=1000)):.6f} 秒")
stmt:要测试的语句(字符串或可调用对象)setup:初始化代码(如导入模块),默认为空number:每次测试运行的次数,默认为 1,000,000repeat:重复整个测试的次数(配合 Timer.repeat())number 值(如 10,000 或更高),使总耗时超过 0.1 秒。
你也可以直接在终端中使用 timeit:
# Linux / macOS
python -m timeit "'-'.join(str(n) for n in range(100))"
# Windows
py -m timeit "'-'.join(str(n) for n in range(100))"
timeit 测量 I/O 操作(如文件读写、网络请求),因其设计目标是 CPU-bound 代码。stmt 中包含打印语句,会影响性能且无意义。setup 显式导入,否则会报错。timeit 是 Python 开发者进行性能调优的必备工具。通过合理使用它,你可以科学地比较不同实现方案的效率,写出更高效的代码。