Windows似乎有时挂起300-600毫秒 - 由性能计数器测量

时间:2014-03-06 15:27:08

标签: windows windows-7 timing

任何人都知道如何避免Windows 7有时会暂停300-600ms,甚至冻结SystemTime和MultimediaTimer(因此,如果您在此暂停之前和之后测量时间,则测量0ms,而PerformanceCounter实际上确实正确地测量了此暂停.CPU负载非常低(10%)。系统使用新的MLC SSD。这些仍然有口吃问题吗?

我通过测量以每秒6帧的速度拍摄的相机的时间戳来发现这种行为。我在图像进入时记录,并查看抓取日志,图像之间的时间很好,直到我警告他们之间的时间是20%太快和20%太慢。然后我有时(每小时一次,有时仅在4小时后)得到300-600毫秒的警告。接下来是一些“太快”(图像缓冲区突然从缓冲区中提供图像,这些图像在300-600ms暂停期间累积起来)。但是,日志条目中的时间显示系统时间在此期间未更新。

日志时间戳由GetLocalTime(LPSYSTEMTIME)给出,图像之间的时间由PerformanceCounter给出。当我使用multimediatimer来测量新图像之间的时间时,它的持续时间与您在减去日志中的时间时的持续时间相同。然后我觉得奇怪的是它给了我额外的图像,时间差为0-30ms。

我在网络界面,不同的相机中尝试了各种调整和驱动程序更新,没有运气。

166ms是图像之间的理想时间,但这里是缺少时隙的“突发”以及系统时间和性能计数器之间的差异的示例:

[03:06:09:48:22:615]New Image
[03:06:09:48:22:781]New Image
[03:06:09:48:22:949]New Image
[03:06:09:48:22:974]New Image. Warning Time since last: 224ms
[03:06:09:48:23:083]New Image
[03:06:09:48:23:238]New Image. Warning Time since last: 454ms
[03:06:09:48:23:261]New Image. Warning Time since last: 224ms
[03:06:09:48:23:415]New Image. Warning Time since last: 353ms
[03:06:09:48:23:551]New Image
[03:06:09:48:23:583]New Image. Warning Time since last: 330ms
[03:06:09:48:23:734]New Image. Warning Time since last: 451ms
[03:06:09:48:23:754]New Image. Warning Time since last: 119ms
[03:06:09:48:23:854]New Image
[03:06:09:48:24:020]New Image
[03:06:09:48:24:186]New Image
[03:06:09:48:24:354]New Image
[03:06:09:48:24:520]New Image
[03:06:09:48:24:686]New Image

所以这一切都归结为这个问题:

  • 什么现象会导致系统时间和多媒体时间与系统的其余部分锁定,因此暂停时间会被屏蔽,而性能计数器仍会保留时间,我该如何解决?

1 个答案:

答案 0 :(得分:0)

我通过安装新的网络驱动程序,禁用超线程,turbo boost和CPU Pstates来解决这个问题。