Python 中的 timeit 函数详解

精准测量小段 Python 代码执行时间的利器

什么是 timeit?

timeit 是 Python 标准库中的一个模块,专门用于精确测量小段代码的执行时间。它通过多次运行代码并取平均值,有效减少系统波动对计时结果的影响,是性能调优和算法比较的常用工具。

基本语法

最常用的两种方式:

参数说明:

使用示例

示例 1:比较列表推导式与 for 循环

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

示例 2:使用 setup 导入模块

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

适合快速验证代码片段性能。

最佳实践建议

常见误区

  1. 误用全局变量:若需测试函数,应在 setup 中定义或导入。
  2. 忽略 warm-up 效应:Python 的 JIT(如 PyPy)或缓存可能影响首次运行时间,timeit 默认多次运行可缓解此问题。
  3. 过度解读微秒级差异:关注数量级差异,而非纳秒级波动。
eshop无法进入?常见原因与解决方法指南 Pinion变速箱7LONGWEN-高性能自行车中轴变速箱解决方案 Python IDLE 在哪里?完整查找与使用指南 Python大顶堆详解-原理、实现与应用 Shopee买家App-轻松购物,尽在掌中 “Plough into” 翻译与用法详解|英语短语学习专题 lithosphere 音标与释义|地球科学术语详解 Python库下载大全-快速安装常用第三方库 Python while 循环执行3次详解-入门示例与技巧 Nintendo Switch App 3.0.1-78TP移动伴侣应用全新升级 Python海龟库(Turtle)入门与实战指南 Incotporate-探索创新与协作的未来工作方式 深入耕耘:探索“Plow Into”的含义与应用 iPhone 17 前后摄像头同步拍摄功能详解|创新影像体验 Senior比较级详解-英语语法专题 Compliment 与 Complement 的区别|英语易混淆词详解 Shine手表-精致工艺,闪耀每一刻 Nintendo Switch 安卓版-在手机上畅玩Switch游戏 Python中while循环的用法详解-入门到精通 Switch Online App 安卓版-在安卓设备上畅玩任天堂Switch在线游戏 Python Timer 用法详解-定时任务与延时执行指南 Conceptual:探索抽象与创意的边界 Chainge币-去中心化金融的未来|Chainge专题介绍 台湾版 iPhone 能在大陆用吗?全面解析与使用指南 SHEIN招聘-加入全球领先的时尚科技公司 港版 iPhone AI 功能全面解析|最新人工智能体验 如何更新 pip-Python 包管理工具升级指南 Shopee商家版App-一站式店铺管理工具 iPhone 第一代发布时间-历史上的科技里程碑 Python 自带的 IDLE 有什么用?新手入门必备工具详解 angiogenesis 音标与详解|血管生成专业科普 Python库大全-常用第三方库介绍与使用指南 韩版 iPhone 为何不能使用韩国电话卡?全面解析与解决方案 Shopee校园招聘-加入我们,共创未来 Penetration 的隐晦含义:语言、文化与象征的多维解读 Shopee面单尺寸指南-打印规格与下载模板 Pigeon和捷安特哪个好?全面对比分析与选购建议 senior怎么读?英文发音、音标、词义及例句详解 eshop怎么进?Nintendo eShop 入口指南与常见问题解答 Championship翻译-赛事冠军与竞技荣耀全解析 SHEIN招聘7LONGWEN-加入全球快时尚领先团队 Python左移操作详解-位运算入门指南 Pinarello中文7LONGWEN|意大利顶级公路自行车品牌 Pioneet-探索创新,引领未来 Shine衣服品牌-焕发自信光彩,穿出闪耀自我 国行iPhone能用eSIM吗?全面解析2026最新情况 Python怎么升级pip?完整指南|快速安全升级pip版本 Champion尺码对照表-78TP男女装鞋服尺码指南 Shein服装品牌-时尚快消女装、男装与配饰|潮流穿搭指南 国家开放大学在线学习平台-开放教育 · 终身学习 Off The Chain-探索自由、创意与突破的边界 iPhone 17 是否使用钢壳电池?最新技术解析-科技前沿 iPhone序列号JH开头代表什么?全面解析与查询指南 Pioneer是什么牌子手机?全面解析先锋手机品牌历史与现状 Conceive 的名词含义与用法详解|英语词汇专题 Alternation 与 Alteration:词义辨析与语言之美 用 IDLE 编写 Python 文件-新手入门指南 Pioneer翻译中文-先锋精神与语言桥梁 iPhone能双开微信吗?全面解析iOS系统是否支持微信双开 Nice-发现生活中的美好瞬间 iPhone 17 发布与销售时间预测|最新消息汇总 Champions Chosen-英雄之选|探索传奇英雄与命运之战 Python 自带 IDLE 入门指南-轻量级开发环境介绍 iPhone送货时间会提前吗?最新配送政策与用户经验分享 iPhone 13 远峰蓝-颠覆视觉的旗舰智能手机|78TP详情页 “Senior”的翻译与用法详解|英语词汇专题 怎么买港版iPhone 17?最新购买指南与注意事项-2026 内啡肽(Endorphins):快乐的天然化学物质|健康与幸福指南 Python 78TP网站-高效、易读、通用的编程语言 如何正确使用 “incorporate” 搭配|英语学习专题 Nice To Do-发现生活中的美好小事 Pioneer先锋电视售后服务电话-78TP客服热线与维修支持 Celery Python 入门指南-异步任务队列详解 台湾买的iPhone大陆能用吗?全面解析网络制式与使用兼容性 SHEIN最新消息-全球时尚快讯、新品发布与品牌动态 pioneers什么意思中文-先驱者、开拓者的含义与用法详解 Endorphin始祖鸟:探索户外极限的科技先锋 Mon Chéri 法语发音指南-正确读音、音频示例与学习技巧 加入SHEIN|SHEIN7LONGWEN招聘-全球快时尚电商人才招募 iPhone 17 橙色版:非78TP命名与设计猜想|科技前沿探索 Python的IDLE怎么运行代码?新手入门指南 Champion 衣服品牌7LONGWEN|经典美式运动服饰 Persona图鉴-探索人格面具的神秘世界 OpenCV-Python 下载与安装指南|快速入门计算机视觉 SHEIN十大股东信息-公司股权结构与投资方介绍 Python的IDLE怎么运行?新手入门指南|Python教程 Shine招聘7LONGWEN-发现你的闪耀职业机会 SHEIN年销售额突破新高|全球快时尚电商巨头销售数据解析 iPhone首发会提前发货吗?最新消息与用户指南 Python中的Object详解-面向对象编程核心概念 香港买iPhone免税吗?2026最新攻略与注意事项 Python IDLE怎么运行?新手入门指南|Python学习专题 Python True-探索 Python 编程语言的真相与魅力 Implication 与 Implicate:含义、用法与区别详解 Shein风格时尚专题|快速潮流穿搭灵感 台灣 iPhone 官網入口|Apple 台灣78TP網站 Pioneer电视如何设置WiFi连接-完整图文指南 Something例句短语大全|常见用法与实用例句 简体中文(Simplified Chinese)文化与语言专题 Python subprocess.Popen 详解-安全高效地执行外部命令