【问题标题】:Timing a task In Python [duplicate]在Python中计时任务[重复]
【发布时间】:2015-02-08 07:18:17
【问题描述】:

我一直在尝试解决这个问题,但我一直无法解决。基本上我想要做的是获得完成特定任务所需的时间。

例如:

def find(x):
  if x in stuff:
    return "X was found, Search Time: [TIME IT TOOK]"

我希望它类似于“搜索时间:0.03 秒”。这是一个非常糟糕的例子,但现在是午夜,我正在尝试为学校完成一个 python 项目,因此非常感谢所有答案。

谢谢

【问题讨论】:

  • 你可以使用timeit模块。
  • 这只是运行时间,时间复杂度不同。
  • 这不是时间复杂度,它只是挂钟时间。时间复杂度反映了算法的可扩展性(要获得挂钟时间,请使用 timeit,正如 Marcin 建议的那样)
  • 您会如何解释“搜索时间:[TIME IT TOOK]”?我不认为它是O(log(n)) 或其他什么。我认为它是以秒或微秒为单位的时间。
  • 没错,timeit 是正确的方向,但很高兴看到使用它的最佳方式并同时保存结果

标签: python time


【解决方案1】:

据我了解,您的目标不是分析器。对于像记录特定处理步骤花费多长时间(挂钟时间)这样简单的事情,我通常使用time.time() 来获取开始时间和结束时间并计算它们之间的差异。

例子:

import time

start = time.time()
# do something
pass
end = time.time()
delta = end - start
print "took %.2f seconds to process" % delta

要获得可能更高的分辨率(微秒),以及它与系统时钟的独立性,还可以查看time.clock()。请注意,这测量的是 CPU 时间,而不是挂钟时间(至少在 Linux 上 - 这可能不是您需要的)。

供参考:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-01
    • 2018-05-16
    • 2016-01-27
    • 2012-09-08
    • 1970-01-01
    • 1970-01-01
    • 2017-02-27
    相关资源
    最近更新 更多