【问题标题】:Accurate timer using python time [on the microseconds level] [duplicate]使用python时间的精确计时器[微秒级] [重复]
【发布时间】:2017-08-11 15:35:55
【问题描述】:

我想创建每 500 毫秒运行一次的触发器,并且它应该不会随着时间的推移而漂移。 我运行这段代码以在 pyopengl 中显示一些东西

def __init__(self):
    ...
    self.t_on = time.clock()
    ...
def display_gl(self):
    ...
    if (time.clock() - self.t_on) >= 0.500:
        self.t_on = time.clock()
        #do things
    ...

时钟随着时间的推移而漂移,我认为这是因为if 条件在一段时间后捕捉到了 500 毫秒的时刻。

有什么办法可以避免这个飘忽不定的问题吗?

已解决
改变:

if (time.clock() - self.t_on) >= 0.500:
    self.t_on = time.clock()

到:

if (time.clock() - self.t_on) >= 0.500:
    self.t_on =time.clock() - ((time.clock() - self.t_on) - 0.500)

【问题讨论】:

  • 检查你的if语句的时间,然后从500ms推断if,所以新的时间+处理时间正好是500ms。

标签: python time clock


【解决方案1】:

已解决
感谢Mayeul sgc
改变:

if (time.clock() - self.t_on) >= 0.500:
    self.t_on = time.clock()

到:

if (time.clock() - self.t_on) >= 0.500:
    self.t_on =time.clock() - ((time.clock() - self.t_on) - 0.500)

【讨论】:

    猜你喜欢
    • 2014-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 2017-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多