我正试图在windows上为clock_gettime(CLOCK_MONOTONIC)
和mach_absolute_time
找到一个合适的替代品。GetTickCount
很烦人,因为它故意带有偏见:当系统从挂起或休眠状态恢复时,Windows似乎计算出它被挂起(从主板)的时间,然后将其添加到勾号计数中,使其看起来像系统关机时进行的勾号。QueryUnbiasedInterruptTime
更友好:它是一个简单、看似可靠的计数器,只返回系统自启动以来的运行时间。
现在,我用QueryUnbiasedInterruptTime
进行了实验,看看当计算机进入睡眠、混合睡眠和休眠模式时会发生什么。它似乎被正确地更新了,因此看起来是单调的(即,系统在休眠之前将其保存并还原,这样应用程序就不会被混淆)。
但是,有一个注释here on the Python dev pages(顺便说一下,这是一个非常有用的时间函数参考资源!):
QueryUnbiaSedInterruptTime()不是单调的。
我想有人做了个测试来确定。这个信息准确吗?如果是的话,出于兴趣,我想知道你必须做些什么才能使回报值倒退。
最佳答案
QueryUnbiasedInterruptTime
一定是单调的。中断时间没有增加偏差,因此它总是向前滴答,尽管速率有时可能与挂钟略有不同。
我在msdn中找不到任何好的参考资料,但我现在确信hans的评论是正确的,cpython开发人员一定是搞糊涂了。
关于windows - QueryUnbiasedInterruptTime是单调的吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21115082/