【问题标题】:Python measuring delta time in cycle after n-repeatingPython 在 n 次重复后测量循环中的增量时间
【发布时间】:2018-03-31 05:46:16
【问题描述】:

拜托,我需要帮助 :) 我在 python 中有一个较长的周期,我想测量每 1000 次迭代的总周期时间以及最后 1000 次迭代之间的时间(我的意思是周期中 1000 和 2000 次迭代之间的差异)。

测量从我调用delta开始的总时间和调用d2的1000次迭代之间的时间的变量

start = time.time()
for i in range (0, iterations):
# ... logic in cycle ...
# calculating delta in each iteration
delta = time.time() - start
# Measuring time after every 1000 iterations
if (i + 1) % 1000 == 0:
    # Calculating  d2 time
    d2 = time.time() - start - d2
    print (str(i + 1) + ' items in ' + time.strftime("%H:%M:%S", time.gmtime(delta)) + ' (' + time.strftime("%H:%M:%S", time.gmtime(d2)) + ')' )

# After cycle
end = time.time() - start
print ('Total time: ' + time.strftime("%H:%M:%S", time.gmtime(end)))

结果如下:

1000 items in 00:00:07 (00:00:07) 2000 items in 00:00:13 (00:00:06) 3000 items in 00:00:20 (00:00:13) 4000 items in 00:00:27 (00:00:13) 5000 items in 00:00:34 (00:00:20) 6000 items in 00:00:41 (00:00:20) 7000 items in 00:00:48 (00:00:27) 8000 items in 00:00:55 (00:00:27) 9000 items in 00:01:01 (00:00:34) 10000 items in 00:01:08 (00:00:34) 11000 items in 00:01:15 (00:00:41) 12000 items in 00:01:22 (00:00:41)

似乎在第一个值中它是可以的(在第二行中 7 秒和 13 秒之间的增量是可以的),但后来这个时间正在消散和混乱。看最后两行。 00:01:08 和 00:01:15 之间的增量约为 7 秒(如前 2 行),而不是 41 秒。也是最后一行...

哪里有问题?请问有什么办法吗?

我很乐意提供任何提示或帮助。非常感谢

问候

【问题讨论】:

    标签: python time cycle measurement


    【解决方案1】:

    您还必须在每 1000 个周期更新一次 d2。为了清楚起见,我将旧的 delta 命名为 old_delta

    import time
    
    iterations = 5000
    start = time.time()
    
    old_delta = 0
    for i in range(0, iterations):
        time.sleep(.002)
        # ... logic in cycle ...
        # calculating delta in each iteration
        delta = time.time() - start
        # Measuring time after every 1000 iterations
        if (i + 1) % 1000 == 0:
            # Calculating  d2 time
            d2 = delta - old_delta
            print(str(i + 1) + ' items in ' + time.strftime("%H:%M:%S", 
        time.gmtime(delta)) + ' (' + time.strftime("%H:%M:%S", time.gmtime(d2)) 
        + ')' )
            old_delta = delta
    
    
    # After cycle
    end = time.time() - start
    print ('Total time: ' + time.strftime("%H:%M:%S", time.gmtime(end)))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-26
      • 1970-01-01
      • 2020-01-21
      • 2016-02-13
      • 2010-10-03
      相关资源
      最近更新 更多