在 Windows Server 2000、 Windows Server 2003 中,以及在 Windows XP 中使用 QueryPerformanceCounter 函数的程序可能会运行不佳

文章翻译 文章翻译
文章编号: 895980 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

症状


在下面的 OS'es 中:
Windows 2000 Server
Windows XP
Windows Server 2003
Windows Server 2000 来宾 O.S.
Windows XP 来宾 O.S.
Windows Server 2003 来宾 O.S.

Aprogram 使用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



此外,如果性能计数器用于逻辑磁盘或物理磁盘可能无法正确显示高滞后时间值。


注:正在运行基于 x86 的 Windows 版本或基于 x64 的 Windows 版本的计算机上发生此问题。


原因

出现此问题的计算机上具有 AMD Cool'n' 安静启用 BIOS 或某些英特尔多核处理器中的技术 (AMD 双内核)。不同的内核之间的时间不同步时,多核或多处理器系统可能会遇到时间戳计数器 (TSC) 偏移。操作系统使用它作为计时资源 TSC 可能会遇到问题。更新版本的操作系统通常不使用 TSC,默认情况下如果其他计时器都可以用作计时源系统中可用。其他可用的计时器包括 PM_Timer 和高精度事件计时器 (HPET)。

解决方案

若要解决此问题,请与硬件供应商联系,以查看新的驱动程序/固件更新程序是否可以解决此问题。

注意驱动程序的安装可能会在 Boot.ini 文件中添加/usepmtimer开关。此开关将"替代方法"一节中讨论。

替代方法

若要变通解决此问题,请更新计算机上的 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 设置,则可能会带来性能下降。

更多信息

有关 ACPI 和 APCI 硬件支持的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
309283 HAL 选项后 Windows XP 或 Windows Server 2003 安装程序

对基于 x64 的 Microsoft Windows 版本的技术支持

如果已经安装了 Microsoft Windows x64 版自带您的硬件,您的硬件制造商提供了技术支持和帮助的 Windows x64 版本。在这种情况下,您的硬件制造商提供支持,这是因为 Windows x64 版本不包含与您的硬件。您的硬件制造商可能已自定义 Windows x64 版安装使用特有的一些组件。唯一的组件可能包括特定设备驱动程序,或者可能包括用于硬件性能达到最大的可选设置。如果您需要使用 Windows x64 edition 的技术帮助,Microsoft 将提供尽最大的努力协助。但是,您可能需要与制造商直接联系。您的制造商最有资格支持其安装在硬件上的软件。如果单独购买如 x64 版本的 Microsoft Windows Server 2003 的 x64 的 Windows 版本,请与 Microsoft 联系技术支持。

有关 Microsoft Windows XP 专业 x64 版的产品信息,请访问下面的 Microsoft 网站:
http://www.microsoft.com/windowsxp/64bit/default.mspx
有关 Microsoft Windows Server 2003 的基于 x64 版本的产品信息,请访问下面的 Microsoft 网站:
http://www.microsoft.com/windowsserver2003/64bit/x64/editions.mspx
本文讨论的第三方产品是由与 Microsoft 无关的公司生产的。Microsoft 对这些产品的性能或可靠性不做任何暗示或其他形式的保证。

属性

文章编号: 895980 - 最后修改: 2014年2月9日 - 修订: 13.0
这篇文章中的信息适用于:
  • Microsoft Windows Server 2003, Datacenter x64 Edition
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows Server 2003, Standard x64 Edition
  • Microsoft Windows Server 2003 Datacenter Edition
  • Microsoft Windows Server 2003 Enterprise Edition
  • Microsoft Windows Server 2003 Standard Edition
  • Microsoft Windows Server 2003 Web Edition
  • Microsoft Windows XP Professional x64 Edition
  • Microsoft Windows XP Professional Edition
  • Microsoft Windows 2000 Enterprise Edition
  • Microsoft Windows 2000 Standard Edition
关键字:?
kbtshoot kbprb kbmt KB895980 KbMtzh
机器翻译
重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。
点击这里察看该文章的英文版: 895980
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com