如何查找开始之前需要执行多长时间?

时间:2018-08-04 19:36:27

标签: python python-3.x python-2.7 time

我们可以测量脚本执行所需的时间。就像这个问题一样:How do I get time of a Python program's execution?

但是我想要的是找到执行代码之前要花的时间。

示例1:

执行脚本时,要打印的第一件事是这样的:

this function will take 1 min 40 seconds to be executed

示例2:

到目前为止已执行多少的百分比。例如,一分钟后,百分比为:60%,并且一直增加,直到达到100%

2 个答案:

答案 0 :(得分:1)

对此问题的完全通用解决方案将解决the halting problem,这在数学上已被证明是不可能的。

对于更特殊的情况,可以做到。对于某些算法,如果知道必须完成多少工作并且可以定期检查已完成多少工作,则可以更新百分比。您还可以根据百分比的增长速度来估算剩余时间,但这通常是不准确的。

答案 1 :(得分:0)

请注意,执行功能时,时间取决于算法以及机器速度。为了在不执行代码的情况下计算时间,您可能必须提供一些初始参数,或者使用机器学习代码通过遍历代码来计算执行时间,但这似乎非常困难。

顺便说一句,使用导入timeit进行尝试。

只需节省执行代码前后的时间,然后将它们相减即可!但是这种方法并不精确,因为可能会暂时运行一个后台进程,这会中断代码执行,并且您会在小的代码段的运行时间上看到很大的差异。

timeit运行您的代码片段数百万次(默认值为1000000),以便您获得统计上最相关的代码执行时间度量!

#导入所需的模块     导入时间

# code snippet to be executed only once
mysetup = "from math import sqrt"

# code snippet whose execution time is to be measured
mycode = '''
def example():
    mylist = []
    for x in range(100):
        mylist.append(sqrt(x))
'''

# timeit statement
print timeit.timeit(setup = mysetup,
                    stmt = mycode,
                    number = 10000)