在Python上使用time.time()的完美时间

时间:2015-08-18 09:22:57

标签: python time raspberry-pi

  

time.time():

     

返回自纪元以来的秒数作为浮点数。   请注意,即使时间总是作为浮点返回   数字,并非所有系统都提供比1更精确的时间   第二。虽然此函数通常返回非递减值,但它   如果系统时钟有,则可以返回比先前调用更低的值   在这两个电话之间被搁置了。

我想在 Raspberry Pi 上使用时询问time.time()的功能。我正在编写一个代码,我必须组织一个具有完美时序的系统[例如,每5秒做一次,而不是一秒钟或多或少!永远!]。但是,我注意到,当time.time()的十进制值介于.95-.05之间时,第二次递增,而不是在十进制值为.00

时递增。

示例:如果时间为1439286302.64,那么根据小数值,当它达到~1439286302.9x时,它将增加1秒。有谁知道它将增加1秒的确切边界是什么?因为我一直在测试,这似乎是随机的,我无法在网上找到答案。

我感谢所有人的帮助。

1 个答案:

答案 0 :(得分:1)

某些伪代码至少应该每5秒保持平均值而不是复合抖动

time_started = time.time()
next_action_time = int(time_started) + 5
while True:
    if next_action_time < time.time():
        do_action!!!!!
        next_action_time += 5
    else:
        waste_some_time()

确保您的其他流程符合您的时间预算。也可以让你的so_actions采样记录测量完成的实际时间。通过这种方式,您可以确认是否有抖动。