如何准确测量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
相关产品推荐
相关产品推荐

