为什么time.time()结果减少到50.85秒?

时间:2019-05-27 12:00:10

标签: python linux time measure

我使用了两个time.time()调用之间的差值来衡量我的应用程序完成网络请求所花费的时间。应用程序正在Debian服务器上运行。问题在于,我会定期在这些值之间产生负差,好像时间在倒退。

我写了一个简单的例子:

import time

while True:
    print("OK")
    start_time = time.time()
    time.sleep(0.01)
    end_time = time.time()
    diff = end_time - start_time
    if diff < 0:
        print(start_time)
        print(end_time)
        print(diff)
        break

这是输出(这是可重复的,只需几秒钟即可减少时间):

...
OK
OK
OK
OK
OK
OK
OK
1558957392.940343
1558957342.089879
-50.8504638671875

在我的Mac中,此代码没有此类问题。现在,我在服务器上切换到time.perf_counter(),一切正常。文档说:

  

虽然此函数通常返回不减值,但它可以   如果系统时钟已返回,则返回一个比上一个调用更低的值   在两个通话之间退后。

但是我想知道:为什么在我的Debian服务器中只花几秒钟就能得到错误,为什么时差总是约50.85秒(最后3次运行:50.84628367424011、50.84458661079407、50.84599566459656)?

0 个答案:

没有答案