计算每次迭代的时间

时间:2017-08-18 14:36:28

标签: python time

我正在尝试计算每次循环迭代的时间。但是,我注意到处理(任何)所需的时间以递增的方式在每次迭代中增加。我通过使用以下命令来计算时间:

start_time = time.time()
loop: 
    (any process)
print (time.time() - start_time))

2 个答案:

答案 0 :(得分:2)

当您调用time.time方法时,您将返回基于Unix时钟系统的时间量,基本上是系统本地的时间。

您正在为start_time分配时间,然后运行10个进程并输出当前时间减去start_time,因此您基本上计算了运行10个进程所需的时间。

现在我相信你要做的是计算每个进程需要多长时间,为此你需要移动你提供的示例代码中的某些行:

    import time
        for i in range(10): 
        start_time = time.time()    
        (any process)

        print(time.time() - start_time))

通过将时间分配移动到循环中,您将分配循环开始的时间,然后输出每次迭代的单独时间,而不是计算整个循环整体花费的时间。

这将输出每次迭代所需的时间。

请随时提出任何问题!

答案 1 :(得分:2)

以下是您如何使用timeit执行时间安排的示例。

import timeit
setup = "i = {}"
stmt = """
for x in range(i):
    3 + 3
"""
[timeit.timeit(stmt=stmt, setup=setup.format(i), number=100) for i in range(10)]

其中列出了每个循环的次数:

[8.027901640161872e-05,
 0.00011072197230532765,
 0.00011189299402758479,
 0.00012168602552264929,
 0.00012224999954923987,
 0.0001258430420421064,
 0.00013012002455070615,
 0.00013478699838742614,
 0.000138589006382972,
 0.0001438520266674459]