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

Python代码中time()计算看似异常耗时的问题排查

问题分析与解答

你误解了耗时的来源:不是计算total_used_time耗时,而是_run_step函数的执行时间几乎等于0.99 * time_limit,以下是详细的代码执行流程分析:

代码执行流程拆解

以time_limit=0.5为例:

  1. 第一次进入while循环:
    • 计算total_used_time = time.time() - self.start,此时程序刚启动,耗时仅约1e-6秒,所以打印的s1、s2都是这个极小值。
    • 调用_run_step(env, self.agent_id, depth),这个函数的执行耗时接近0.99 * 0.5 = 0.495秒(对应输出里第二个s1的0.4996秒)。
    • 打印s3时,使用的是之前计算的旧total_used_time值,并未重新获取当前时间,所以s3的时间和s1、s2一致。
  2. 第一次循环结束,回到while开头:
    • 重新计算total_used_time,此时距离self.start已经过去了_run_step的执行时间,满足total_used_time >= 0.99 * time_limit的条件,循环终止,打印depth=2。

验证方法

你可以在_run_step调用前后添加时间打印,直接查看该函数的耗时:

print(f'before _run_step: {time.time() - self.start}')
_, op = self._run_step(env, self.agent_id, depth)
print(f'after _run_step: {time.time() - self.start}')

执行后就能清晰看到_run_step函数占用了大部分时间,而非total_used_time的计算操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 14:43:14