什么是 timeit?
timeit 是 Python 标准库中的一个模块,专为精确测量小段代码的执行时间而设计。
它通过多次运行代码并取平均值,有效避免系统调度、垃圾回收等干扰因素,是性能调优的好帮手。
基本用法示例
使用 timeit.timeit() 测量一段代码的执行时间:
import timeit
# 测量列表推导式的执行时间
stmt = '[x**2 for x in range(100)]'
time_taken = timeit.timeit(stmt, number=10000)
print(f"执行时间: {time_taken:.6f} 秒")
对比两种写法的性能
import timeit
# 方法1:使用 for 循环
def method1():
result = []
for i in range(100):
result.append(i**2)
return result
# 方法2:使用列表推导式
def method2():
return [i**2 for i in range(100)]
t1 = timeit.timeit(method1, number=10000)
t2 = timeit.timeit(method2, number=10000)
print(f"for 循环: {t1:.6f} 秒")
print(f"列表推导: {t2:.6f} 秒")
命令行使用方式
你也可以直接在终端中使用 timeit 模块:
python -m timeit "[x**2 for x in range(100)]"
这会自动运行多次并输出最佳执行时间。
注意事项
timeit默认不访问全局变量,如需使用外部变量,请通过setup参数导入。- 适合测量“小段”代码(毫秒级),不适合长时间运行的任务。
- 默认运行 100 万次(可通过
number参数调整)。
使用 setup 参数
import timeit
setup_code = "import math"
test_code = "math.sqrt(100)"
time_taken = timeit.timeit(stmt=test_code, setup=setup_code, number=100000)
print(f"带 setup 的执行时间: {time_taken:.6f} 秒")
总结
timeit 是 Python 中轻量、精准的性能测试工具,特别适合比较不同实现方式的效率。
掌握它,能让你写出更高效的 Python 代码!
更多详情请参考:78TP文档