You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python timeit默认返回的时间单位为何与官方文档说明不一致?

关于timeit返回值的单位疑问解答

你对timeit返回值的单位认知没有错误:默认参数下,timeit返回值的单位确实是秒,和time.perf_counter()的单位完全一致。你产生误解的核心原因是不知道**timeit返回的是多轮执行待测代码的总耗时,而非单次执行的耗时**。

核心逻辑说明

  • timeit设计的初衷是给出可靠的小代码段执行耗时,为了避开系统计时器的精度误差,避免单次执行时间过短导致结果失真,默认会执行非常多次待测代码:
    • Python 3.10版本中,timeit.timeit()的number参数默认值为1000000(即一百万次),你得到的0.007580029021482915秒就是执行一百万次3**2的总耗时,单次执行耗时仅约7.6纳秒,完全符合简单算术运算的预期耗时。
  • 如果显式指定number=1,返回的就是单次执行的耗时,数值会在1e-6秒量级,和你之前误以为的微秒级单位的数值表现一致。

验证示例

import timeit
# 显式指定只执行1次
single_run_time = timeit.timeit('3**2', number=1)
print(f"单次执行耗时:{single_run_time}秒,即{single_run_time*1e6}微秒")

# 查看默认执行一百万次的总耗时,和你测试的结果一致
million_run_time = timeit.timeit('3**2', number=1000000)
print(f"一百万次执行总耗时:{million_run_time}秒")

内容的提问来源于stack exchange,提问作者Paul Jurczak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 20:48:04