Freigeben über


Programme, die die QueryPerformanceCounter-Funktion verwenden, können schlecht ausgeführt werden

Dieser Artikel enthält eine Lösung für ein Problem, das auf 32-Bit-Computern und x64-basierten Computern auftritt, auf denen die AMD Cool'n'Quiet-Technologie im BIOS aktiviert ist.

Ursprüngliche KB-Nummer: 895980

Symptome

In den folgenden Betriebssystemen:

  • Windows Server 2000
  • Windows XP
  • Windows Server 2003
  • Windows Server 2000-Gast-O.S.
  • Windows XP-Gast-O.S.
  • Windows Server 2003-Gast-O.S.

Ein Programm, das die Funktion zum Abfragen der QueryPerformanceCounter Systemzeit verwendet, kann schlecht ausgeführt werden.

Zum Beispiel:

Wenn Sie den Pingbefehl zum Senden von ICMP-Paketen (Internet Control Message Protocol) an einen Remotecomputer verwenden, zeigt die Antwort möglicherweise negative Antwortzeiten an. Beispielsweise kann der folgende Pingbefehl die folgenden Antworten generieren:

C:\>ping x.x.x.x

Ausgabe:

Pinging x.x.x.x mit 32 Bytes Daten:

Antwort von x.x.x.x: bytes=32 time=-59ms TTL=128
Antwort von x.x.x.x: bytes=32 time=-59ms TTL=128
Antwort von x.x.x.x: bytes=32 time=-59ms TTL=128
Antwort von x.x.x.x: bytes=32 time=-59ms TTL=128

Wenn Sie Leistungsindikatoren für logischen Datenträger oder physischen Datenträger verwenden, wird möglicherweise ein hoher Latenzwert falsch angezeigt.

Notiz

Dieses Problem tritt auf einem Computer auf, auf dem eine x86-basierte Version von Windows oder eine x64-basierte Version von Windows ausgeführt wird.

Ursache

Dieses Problem tritt auf, wenn der Computer die AMD Cool'n'Quiet-Technologie (AMD Dual Cores) im BIOS oder einige Intel Multi-Core-Prozessoren aktiviert hat. Multi-Core- oder Multiprozessorsysteme können auf TSC-Abweichung (Time Stamp Counter) stoßen, wenn die Zeit zwischen verschiedenen Kernen nicht synchronisiert wird. Bei den Betriebssystemen, die TSC als Zeitgeberressource verwenden, kann das Problem auftreten.

Lösung

Um dieses Problem zu beheben, wenden Sie sich an den Hardwareanbieter, um festzustellen, ob ein neues Treiber-/Firmwareupdate verfügbar ist, um das Problem zu beheben.

Notiz

Die Treiberinstallation kann den Switch "/usepmtimer" in der datei Boot.ini hinzufügen. Dieser Schalter wird im Abschnitt "Problemumgehung" erläutert.

Problemumgehung

Um dieses Problem zu umgehen, aktualisieren Sie das BIOS auf dem Computer. Oder ändern Sie die Boot.ini Datei so, dass die Option "/usepmtimer" verwendet wird. Gehen Sie dazu wie folgt vor:

  1. Melden Sie sich mit einem Konto mit Administratoranmeldeinformationen beim Computer an.

  2. Klicken Sie auf Start und auf Ausführen, geben Sie notepad c:\boot.ini ein, und klicken Sie anschließend auf OK.

  3. In der datei Boot.ini befindet sich eine Zeile, die mit "Standard" beginnt, im Abschnitt "[Startladeprogramm]". Diese Zeile gibt den Speicherort des Standardbetriebssystems an. Die Zeile kann wie folgt angezeigt werden:

    default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
    

    Suchen Sie im Abschnitt "[Betriebssysteme]" die Zeile für das Betriebssystem, die der Zeile "Standard" entspricht. Wenn auf dem Computer beispielsweise Microsoft Windows Server 2003, Enterprise x64 Edition ausgeführt wird, sollte die Zeile wie folgt aussehen:

    multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003 Enterprise x64 Edition" /fastdetect /NoExecute=OptIn
    
  4. Fügen Sie am Ende der Zeile ein Leerzeichen hinzu, und geben Sie dann "/usepmtimer" ein. Die Zeile sollte nun wie folgt aussehen.

    multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003 Enterprise x64 Edition" /fastdetect /NoExecute=OptIn /usepmtimer
    
  5. Speichern Sie die Datei, und beenden Sie dann Editor.

  6. Starten Sie den Computer neu.

Im Folgenden finden Sie ein Beispiel Boot.ini Datei für ein System, das den Switch "/usepmtimer" enthält.

[boot loader]  
timeout=0  
default=multi(0)disk(0)rdisk(0)partition(2)\\WINDOWS  
[operating systems]  
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003 Enterprise x64 Edition" /fastdetect /NoExecute=OptIn /usepmtimer

Notiz

Die Boot.ini Datei befindet sich im Stammordner des Systemlaufwerks.
Die Verwendung der Einstellung "/UsePmTimer" kann zu einer Leistungsminderung führen.

Technischer Support für x64-basierte Versionen von Microsoft Windows

Wenn Ihre Hardware bereits mit einer Windows x64-Edition installiert ist, bietet Ihr Hardwarehersteller technischen Support und Unterstützung für die Windows x64-Edition. Da eine Windows-x64-Edition zusammen mit Ihrer Hardware geliefert wurde, ist der Hersteller der Hardware für den technischen Support zuständig. Möglicherweise hat der Hersteller der Hardware die Windows x64 Edition durch einzelne Komponenten verändert. Dazu gehören beispielsweise bestimmte Gerätetreiber oder optionale Einstellungen zur Leistungsoptimierung der Hardware. Wenn Sie technische Hilfe zu einer Windows x64 Edition benötigen, bietet Microsoft in diesem Fall Unterstützung in angemessenem Rahmen. Sie müssen sich jedoch möglicherweise direkt an den Hersteller wenden. Der Hersteller kann Ihnen den besten Support für die von ihm auf der Hardware installierte Software bieten. Wenn Sie eine Windows x64-Edition (zum Beispiel eine Microsoft Windows Server 2003 x64-Edition) separat erworben haben, wenden Sie sich an Microsoft, um technischen Support zu erhalten.

Informationen zum Haftungsausschluss von Drittanbietern

Die in diesem Artikel genannten Drittanbieterprodukte stammen von Herstellern, die von Microsoft unabhängig sind. Microsoft gewährt keine implizite oder sonstige Garantie in Bezug auf die Leistung oder Zuverlässigkeit dieser Produkte.