我们可以测量脚本执行所需的时间。就像这个问题一样: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%
。
答案 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)