使用查询系统时间的函数的程序可能会运行不佳的解决方案 问题:系统应用操作 知识点分析: 在下面的 OS'': Windows 2000 Server Windows XP Windows Server 2003 Windows Server 2000 来宾 O.S. Windows XP 来宾 O.S. Windows Server 2003 来宾 O.S. 使用查询系统时间的 QueryPerformanceCounter 函数的程序可能会运行不佳。 例如: 当使用 ping 命令将 Internet 控制消息协议 (ICMP) 数据包发送到远程计算机时,答复可能显示否定响应时间。例如,下面的 ping 命令可能生成以下答复: C:\\ > ping x.x.x.x Pinging x.x.x.x,用 32 字节的数据: 来自 x..x.x.x 的答复:字节 = 32 次 = 59ms TTL = 128 来自 x..x.x.x 的答复:字节 = 32 次 = 59ms TTL = 128 来自 x..x.x.x 的答复:字节 = 32 次 = 59ms TTL = 128 来自 x..x.x.x 的答复:字节 = 32 次 = 59ms TTL = 128 此外,如果您使用的逻辑磁盘性能计数器或物理磁盘可能会错误地显示高滞后时间值。 注:正在运行的 x 基于 x86 的 Windows 版本或 x 基于 x64 版本的 Windows 的计算机上会出现此问题。操作步骤:要解决此问题,请更新计算机上的 BIOS。或者,修改 Boot.ini 文件,以使用/usepmtimer开关。请执行以下步骤: 1、使用具有管理凭据的帐户登录到计算机上。 2、单击开始,单击运行,键入c:\\boot.ini 记事本,然后单击确定. 3、在 Boot.ini 文件中,"[引导装载器]"一节中位于"默认"开头的行。这行指定默认的操作系统的位置。行可能会出现如下所示: 默认值 = multi(0)disk(0)rdisk(0)partition(2)\\WINDOWS 在"[操作系统]"部分中,找到对应于在"默认"行的操作系统的行。例如,如果计算机正在运行 Microsoft Windows Server 2003 企业 x64 版本行应类似如下: multi(0)disk(0)rdisk(0)partition(2)\\WINDOWS="Windows Server 2003 Enterprise x64 Edition" /fastdetect /NoExecute=OptIn 4、 行的末尾添加一个空格,然后键入/usepmtimer。该行现在应该类似于以下。 multi(0)disk(0)rdisk(0)partition(2)\\WINDOWS="Windows Server 2003 Enterprise x64 Edition" /fastdetect /NoExecute=OptIn /usepmtimer 5、 保存该文件,然后退出记事本。 6、 重新启动计算机。 下面是示例 Boot.ini 文件包含/usepmtimer开关的系统。 [引导加载程序] 超时时间 = 0 默认值 = multi(0)disk(0)rdisk(0)partition(2)\\WINDOWS [操作系统] multi(0)disk(0)rdisk(0)partition(2)\\WINDOWS="Windows Server 2003 Enterprise x64 Edition" /fastdetect /NoExecute=OptIn /usepmtimer 注意Boot.ini 文件位于系统驱动器的根文件夹中。 注:使用 /UsePmTimer 设置可能会带来性能降低。知识点分析:在下面的 OS'': Windows 2000 Server Windows XP Windows Server 2003 Windows Server 2000 来宾 O.S. Windows XP 来宾 O.S. Windows Server 2003 来宾 O.S. 使用查询系统时间的 QueryPerformanceCounter 函数的程序可能会运行不佳。 例如: 当使用 ping 命令将 Internet 控制消息协议 (ICMP) 数据包发送到远程计算机时,答复可能显示否定响应时间。例如,下面的 ping 命令可能生成以下答复: C:\\ > ping x.x.x.x Pinging x.x.x.x,用 32 字节的数据: 来自 x..x.x.x 的答复:字节 = 32 次 = 59ms TTL = 128 来自 x..x.x.x 的答复:字节 = 32 次 = 59ms TTL = 128 来自 x..x.x.x 的答复:字节 = 32 次 = 59ms TTL = 128 来自 x..x.x.x 的答复:字节 = 32 次 = 59ms TTL = 128 此外,如果您使用的逻辑磁盘性能计数器或物理磁盘可能会错误地显示高滞后时间值。 注:正在运行的 x 基于 x86 的 Windows 版本或 x 基于 x64 版本的 Windows 的计算机上会出现此问题。操作步骤:要解决此问题,请更新计算机上的 BIOS。或者,修改 Boot.ini 文件,以使用/usepmtimer开关。请执行以下步骤: 1、使用具有管理凭据的帐户登录到计算机上。 2、单击开始,单击运行,键入c:\\boot.ini 记事本,然后单击确定. 3、在 Boot.ini 文件中,"[引导装载器]"一节中位于"默认"开头的行。这行指定默认的操作系统的位置。行可能会出现如下所示: 默认值 = multi(0)disk(0)rdisk(0)partition(2)\\WINDOWS 在"[操作系统]"部分中,找到对应于在"默认"行的操作系统的行。例如,如果计算机正在运行 Microsoft Windows Server 2003 企业 x64 版本行应类似如下: multi(0)disk(0)rdisk(0)partition(2)\\WINDOWS="Windows Server 2003 Enterprise x64 Edition" /fastdetect /NoExecute=OptIn 4、行的末尾添加一个空格,然后键入/usepmtimer。该行现在应该类似于以下。 multi(0)disk(0)rdisk(0)partition(2)\\WINDOWS="Windows Server 2003 Enterprise x64 Edition" /fastdetect /NoExecute=OptIn /usepmtimer 5、 保存该文件,然后退出记事本。 6、 重新启动计算机。 下面是示例 Boot.ini 文件包含/usepmtimer开关的系统。 [引导加载程序] 超时时间 = 0 默认值 = multi(0)disk(0)rdisk(0)partition(2)\\WINDOWS [操作系统] multi(0)disk(
使用查询系统时间的函数的程序可能会运行不佳的解决方案-联想乐享知识库
⚡ 核心结论
本文来源联想官方,解答关于 使用查询系统时间的函数的程序可能会运行不佳的解决方案 的常见问题,包括:Windows Server 2003 x64版使用QueryPerformanceCounter函数的程序运行不佳,ping显示异常响应时间或磁盘性能计数器滞后值偏高,怎么办?等。
内容来源:联想官方
常见问题解答
Windows Server 2003 x64版使用QueryPerformanceCounter函数的程序运行不佳,ping显示异常响应时间或磁盘性能计数器滞后值偏高,怎么办?
该问题源于系统时钟计时器(如TSC)在多核/多处理器或节能状态下不同步,导致QueryPerformanceCounter返回不准确的时间值。解决方案有两种:一是更新主板BIOS以修复硬件级计时器兼容性;二是修改Boot.ini文件启用/usepmtimer开关。具体步骤为:1. 以管理员身份登录;2. 运行“c:\boot.ini 记事本”打开文件;3. 在[操作系统]节中找到对应启动项行(如multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003 Enterprise x64 Edition" /fastdetect /NoExecute=OptIn);4. 在该行末尾添加空格和/usepmtimer;5. 保存并退出;6. 重启计算机。注意:/usepmtimer可能带来轻微性能下降,且仅适用于Windows 2000/XP/Server 2003系列(含来宾OS),不适用于Vista及后续版本。