Python timeit 模块详解

timeit 是 Python 标准库中用于精确测量小段代码执行时间的强大工具。它通过多次运行代码并取平均值,有效排除系统干扰,帮助开发者进行性能分析和优化。

为什么使用 timeit?

基本用法示例

1. 使用 timeit.timeit() 函数

import timeit

# 测试一个简单表达式
elapsed = timeit.timeit('sum([1, 2, 3, 4, 5])', number=100000)
print(f"耗时: {elapsed:.6f} 秒")

2. 测试自定义函数

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} 秒")

3. 使用 Timer 类(面向对象方式)

import timeit

t = timeit.Timer(stmt='[x*2 for x in range(100)]')
print(f"最快一次耗时: {min(t.repeat(repeat=5, number=1000)):.6f} 秒")

常用参数说明

提示:为获得可靠结果,建议设置足够大的 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))"

常见误区

  1. 不要用 timeit 测量 I/O 操作(如文件读写、网络请求),因其设计目标是 CPU-bound 代码。
  2. 避免在 stmt 中包含打印语句,会影响性能且无意义。
  3. 全局变量需通过 setup 显式导入,否则会报错。

总结

timeit 是 Python 开发者进行性能调优的必备工具。通过合理使用它,你可以科学地比较不同实现方案的效率,写出更高效的代码。

Python 爬虫入门与实战指南-轻松掌握网络数据抓取 iPhone XR 是苹果第几代手机?全面解析与参数对比 怎么预约港版iPhone?最新预约流程与注意事项-港版iPhone预约指南 Champion-冠军的英文含义、用法与精神象征 “Nothing”翻译详解|英文单词“nothing”的中文含义与用法 Shopee软件图片大全-78TP界面截图与功能展示 Python Web开发入门指南-构建高效Web应用的最佳实践 Precision时期:技术、艺术与精准时代的交汇 Pioneer电视网络设置指南-快速连接Wi-Fi与有线网络 Python strip() 函数详解-字符串去空格与指定字符 Shopee账号出售-安全可靠的一站式Shopee店铺账号交易平台 淘宝iPhone17会提前发货吗?最新消息与预售指南 Compliment 中文翻译大全-赞美与夸奖的表达方式 Python String 库详解-常用字符串操作与方法大全 iPhone 香港官網預約|Apple (香港) Python安装OpenCV库完整指南|快速上手计算机视觉 Shein天眼查-公司信息、工商数据与企业背景查询 任天堂 Switch Online 服务介绍-重温经典,畅玩联机 Champion几线品牌?正品解析与选购指南 pigeonhole 用法详解|英语词汇学习专题 Python Spyder 专题页-强大的科学计算IDE Python技术栈全解析-从入门到进阶 iPhone 17在哪里生产的?最新产地与供应链解析 去香港买 iPhone 17 的完整步骤详解|超值购机指南 Python 中的 property 详解-属性管理与装饰器用法 Pioneers是合法的吗?全面解析与合规指南 Voice Thick with Emotion — 声音中的情感力量 Python中while循环详解-入门到实践 Python中的sep参数详解-分隔符用法全指南 Champion质量好吗?全面评测与用户真实反馈 韩版 iPhone 17 与日版区别详解|全面对比指南 Python 的正确发音-“派森”还是“派吞”? Python tkinter模块导入指南-快速入门与示例 Appentite-探索美食与食欲的奇妙世界 iPhone 台灣 Apple ID 註冊完整教學(2026最新) 美版iPhone 11是双卡吗?全面解析双卡功能与版本区别 Shopee 2026秋季校园招聘-加入我们,共创电商未来 Python没有pip怎么办?完整解决方案指南 Expedition 的动词原形:Explore 与 Embark —— 探索之旅 Pioneer DJ-专业DJ设备与音乐创作先锋 怎么买港版iPhone 17?最新购买指南与注意事项-2026 Pioneer App-探索未来,尽在掌中|78TP下载 丙磺舒(Probenecid)是什么药?作用、用法与注意事项详解 日版iPhone序列号开头查询-快速识别日本版iPhone型号 Pioneer 的意思|先驱者、开拓者与创新精神 Shopee马来西亚-东南亚领先的电商平台|购物、优惠、跨境直邮 Something Just Like This-探索灵感与共鸣的奇妙交汇 This Is a Big Elephant-探索大象的奇妙世界 Python timeit 模块详解-精准测量代码执行时间 Pioneer电视怎么调到电视信号源?详细操作指南 他对我很好-温暖人心的日常故事 虚伪与矫饰:理解pretentiousness的本质 Something造句简单-轻松掌握英语句子结构 Celery Python 入门指南-异步任务队列详解 iPhone不发热机型推荐-告别发烫,畅享流畅体验 OpenCV 入门指南-开源计算机视觉库详解 iPhone国行和港版有什么区别?全面对比指南 Python两个while循环并列用法详解|编程技巧专题 iPhone 港澳台版与国行版区别详解|功能、网络、保修全对比 MicroPython Web 开发指南|轻量级物联网Web应用入门 日本iPhone和中国iPhone有什么区别?全面对比解析 Python安装pip包完整指南|快速上手pip命令 Python Turtle 库入门指南-轻松绘制图形与动画 angiogenesis 音标与详解|血管生成专业科普 Python没有pip命令?原因与解决方法全解析 港版 iPhone 11 支持双卡吗?全面解析双卡功能与使用指南 鸽巢原理(抽屉原理)详解与应用-数学基础专题 Pinarello 自行车-意大利顶级公路车品牌|速度与美学的完美融合 Champion是什么牌子?品牌历史、产品特点与选购指南 Moncher-探索独特魅力与灵感源泉 韩国版 iPhone 17 国内能用吗?全面解析支持情况与选购建议 香港买iPhone免税吗?2026最新攻略与注意事项 合规与不合规:企业风险与应对策略|Incompliance专题 Pioneer翻译中文-先锋精神与语言桥梁 Python自带的IDLE怎么运行?新手入门指南 Senior High 是什么意思?高中阶段详解|教育指南 Pinarello 7LONGWEN中文|意大利顶级公路自行车品牌 Python如何安装pip-完整指南 Shopee采集软件-高效抓取商品数据,助力电商运营 Champion 7LONGWEN-经典美式运动服饰品牌 Python中的Query操作详解-数据查询与处理指南 Python中index代表什么?详解索引在Python中的含义与用法 iPhone双卡双待机型大全-支持双SIM卡的苹果手机型号一览 Python Schedule 模块使用指南-轻量级任务调度利器 Emotions 翻译|情绪词汇中英对照大全 Python IDLE 安装第三方库完整指南|新手教程 Senior High School 翻译与详解-高中阶段全解析 lithosphere怎么读?发音、释义与地质知识详解 阳光高级中学-培养未来,成就梦想 iPhone 第一代发布时间-历史上的科技里程碑 Nintendo Switch 78TP网站-随时随地,尽享游戏乐趣 Pigeon奶瓶多少钱?2026最新价格、型号及购买指南 Python中index()方法的用法详解-列表、字符串等常见场景 台灣 iPhone 17 價格表|最新上市價格與購買指南 Python 中的 sep 参数详解-分隔符用法指南 Champion 歌曲-激励人心的冠军之歌合集 你喜欢熊猫吗?探索可爱国宝的奇妙世界 Switch Nintendo Account 使用指南-绑定、切换与管理任天堂账号 Champion值得买吗?深度评测与购买建议-2026最新分析 Bonpoint商城-法式童装精品购物首选