我正在尝试计算每次循环迭代的时间。但是,我注意到处理(任何)所需的时间以递增的方式在每次迭代中增加。我通过使用以下命令来计算时间:
start_time = time.time()
loop:
(any process)
print (time.time() - start_time))
答案 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]