NI的开关模块在Win7系统上运行时连接或断开反应很慢



主要软件:
主要软件版本: 4.1
主要软件修正版本: 4.1
次要软件: N/A

问题:
我的一个开关应用程序似乎在Win7系统上运行很慢.  可能是什么原因导致这一问题?

解答:
这是一个在NI-SWITCH 4.4和NI-DAQmx 9.4之前版本驱动中已知存在的问题,不过在之后的驱动版本中,这一问题已经得到解决。 如果您在Win7系统中碰到这一问题,请将NI-Switch的驱动更新至最新;如果在Win7系统中碰到这一问题而又无法更新驱动,可以参考一下方法来提高板卡运行的性能。

有多重不同的因素会影响应用程序的运行时性能(包括CPU时钟频率,CPU核的数量,硬盘性能等)。

Win7系统默认使用 时间戳定时器(TSC),而不是 高精度事件定时器(HPET) 作为程序运行时的定时器。  对于不同的CPU和主板,TSC的时钟频率也可能各有不同 从而导致 NI Switch板卡的较慢响应. 为了解决这一问题,NI推荐  在Win7系统中使能HPET时钟.

一些主板在Bios中有使能HPET的选项。  如果在Bios中看到这一选项,请首先使能,然后继续后续的操作。  如果在Bios中没有这一选项,那么HPET应该是已经默认使能了。

在确认下面的方案对您的系统是否有效之前,可以首先 使用Nvidia的定时器功能测试程序来测试。 该测试程序不需要系统中有Nvidia的芯片,并能运行再任何Windows系统中。 执行以下的步骤来实施我们的解决方案并验证该方案对您的系统是确实有效的。

1. 从下面的链接中下载Nvidia开发者论坛上提供的TimerTiming.zip文件,并解压文件至桌面。
2. 运行TimerTiming.exe.  按回车键开始测试。  测试程序会将测试结果存至同一目录下的times.txt文件中。
3. 重命名times.txt为 times1.txt
4. 打开CMD(Start»All Programs»Accessories»右击 Command Prompt并选择Run as Administrator)
5. 输入以下命令    bcdedit /set useplatformclock true   并按回车执行。
6. 重启电脑.
7. 再次运行TimerTiming.exe,这次会重新穿件一个新的times.txt文件。  将其重命名为 times2.txt.
8. 打开times1.txt和times2.txt. 查看值QueryPerformanceFrequency() freq  = 0  xxxxxxxx

如果xxxxxxxx在重启之后增加,那么我们的解决方法奏效,NI Switch 板卡的定时性能将有所提升。

比如,在附件times1.txt和times2.txt文件中,定时值从2597695增加到了14318180。  表明解决方案成功提升了定时性能。

如果解决方案不成功(times2.txt文件中的新值不比times1.txt文件中的值大)可以通过以下命令来撤销系统设置的改变bcdedit /deletevalue useplatformclock 并重启系统。

注意: 使能HPET可能带来系统中其他设备的非正常运行(如大多数的图形和音频驱动设备),而且也可能导致计算机消耗更大的功率。

相关链接:
Drivers and Updates: NI-SWITCH
Product Manuals: NI Switches Help
NVIDIA Developer Zone: Timer Function Performance

附件:
times1.txt
times2.txt




报告日期: 07/07/2010
最近更新: 12/16/2012
文档编号: 5B6FBDG0