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

如何准确测量Python循环代码的运行耗时?

正确给循环式距离估算代码计时的方法

你之前的问题出在把计时器启动放在while True:循环内部——每次循环都会重置start变量,最后计算的只是最后一次循环迭代的耗时,自然远快于实际整个流程的时间。

两种正确的计时方式:

1. 测量整个估算流程的总耗时

如果要统计从开始执行到目标距离估算完成的总时间,把计时器初始化放在循环之前,停止计时放在循环终止之后:

import time

# 计时器启动:放在循环外面,只执行一次
start = time.time()

while True:
    # 执行你的距离估算逻辑
    current_distance = your_distance_calculation_function()
    
    # 检查是否满足终止条件(比如精度达标、找到目标等)
    if current_distance >= target_threshold:
        break

# 停止计时:循环结束后执行
end = time.time()
total_elapsed = end - start
print(f"距离估算总耗时:{total_elapsed * 1000:.2f} ms")

2. 测量循环内核心逻辑的单次/平均耗时

如果需要统计每次迭代的耗时,或者核心计算步骤的平均时间,可以在循环内针对核心代码块单独计时,同时累计总时间:

import time

total_run_time = 0.0
iteration_count = 0

while True:
    # 记录单次迭代开始时间
    iter_start = time.time()
    
    # 核心距离估算代码
    current_distance = your_distance_calculation_function()
    
    # 计算单次迭代耗时并累计
    iter_end = time.time()
    iter_elapsed = iter_end - iter_start
    total_run_time += iter_elapsed
    iteration_count += 1
    
    # 终止条件判断
    if current_distance >= target_threshold:
        break

# 计算平均耗时
average_time = total_run_time / iteration_count
print(f"总耗时:{total_run_time * 1000:.2f} ms")
print(f"单次迭代平均耗时:{average_time * 1000:.2f} ms")

额外注意事项:

  • 确保终止条件逻辑正确,避免无限循环导致计时失去意义
  • 如果代码包含传感器读取、网络请求等IO操作,根据需求决定是否将这些操作纳入计时范围
  • 可以多次运行测试取平均值,减少系统进程调度带来的时间波动误差

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 20:48:17