我正在测试一个具有高级 GUI 功能的 .NET 应用程序。一个特定操作需要很长时间才能完成,最多需要 5 秒。在观察标准 Windows 资源监视器时,我注意到此延迟与监视器中“最大频率”图表中的严重下降相吻合,一直下降到 0%——参见下图中的蓝线。
根据以下答案Windows 资源监视器中的“最大频率”数字是什么意思?以及网络上的一些其他信息,我的结论是,这种下降导致了延迟,因为 CPU 基本上在大约三秒钟内不可用。这是正确的结论吗?如果是这样,是什么原因导致这种下降发生?
有关我的设置的一些信息:这是在运行 Windows Embedded 7 Standard 的机器上,运行在 英特尔凌动 E680T处理器。所有节能选项均设置为最高性能。在我尝试过的其他机器上进行的相同测试未显示此效果。不过,这些机器的 CPU 更强大。
答案1
我的问题的答案是:即使资源监视器指示最大频率下降,但最大频率并没有下降。
我的进程以实时优先级运行,而资源监视器以正常优先级运行。一旦我的进程变得非常繁忙,资源监视器就不会获得测量其监视的值所需的 CPU 周期。作为“后果”,它错误地显示零值。
令我特别惊讶的是图形用户界面资源监视器的更新很顺利,图表向左移动,没有任何明显的不规则现象。如果 GUI 也停滞了,那么原因就更容易识别了。
抱歉,我回答了自己的问题——我不确定这样做是否合适。但我也不想让其他人白白浪费时间。