任何人都知道如何避免Windows 7有时会暂停300-600ms,甚至冻结SystemTime和MultimediaTimer(因此,如果您测量此暂停前后的时间,则该时间为0ms,而PerformanceCounter实际上确实正确地测量了此暂停。CPU负载非常低(10%)。系统使用新的MLC SSD,这些仍然存在卡顿问题吗?
我通过以每秒6帧的速度测量摄像机的时间戳来发现这种现象。我记录了图像进入的时间,然后查看抓取日志,图像之间的时间很好,直到我警告它们之间的时间是否太快20%和太慢20%。然后我有时(每小时一次,有时仅在4小时后)收到300-600ms警告。后面跟着一些“太快”(图像缓冲区突然提供了300-600ms突发暂停期间建立的缓冲区中的图像)。但是,日志条目中的时间表明在此时间内没有更新systemtime。
日志时间戳记由GetLocalTime(LPSYSTEMTIME)给出,图像之间的间隔时间由PerformanceCounter给出。当我使用多媒体计时器来测量新图像之间的时间时,其持续时间与您减去日志中的时间所获得的持续时间相同。然后我以为它以0-30ms的时差给了我额外的图像,这很奇怪。
我尝试了网络接口中的各种调整和驱动程序更新,不同的摄像头,但都没有碰到运气。
图像之间的理想时间为166ms,但这是缺少时隙的“突发”以及系统时间与PerformanceCounter之间存在差异的示例:
[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
因此,这全都归结为这个问题:
我通过安装新的网络驱动程序,禁用超线程,turbo boost和CPU Pstate来解决此问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句