„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > ## Warum spiegelt GetSystemTimeAdjustment unter Windows 7 nicht immer die tatsächliche Zeitanpassung wider?

## Warum spiegelt GetSystemTimeAdjustment unter Windows 7 nicht immer die tatsächliche Zeitanpassung wider?

Veröffentlicht am 09.11.2024
Durchsuche:922

## Why Does GetSystemTimeAdjustment Not Always Reflect the True Time Adjustment on Windows 7?

Windows 7-Timing-Funktionen: GetSystemTimeAdjustment verstehen

Wie Sie beobachtet haben, können die Ergebnisse der Verwendung der GetSystemTimeAdjustment-Funktion unter Windows 7 rätselhaft sein. Um ein besseres Verständnis zu erlangen, gehen wir auf Ihre Fragen ein:

Frage 1: Richtigkeit der Annahme

Ihre Annahme ist im Allgemeinen richtig. Wenn die Systemzeit regelmäßig synchronisiert wird, würden Sie entweder keine Änderung oder Änderungen in Vielfachen des von GetSystemTimeAdjustment erhaltenen Inkrements erwarten.

Frage 2: Grund für die Diskrepanz

The Die festgestellte Diskrepanz ist darauf zurückzuführen, dass die Granularität der von GetSystemTimeAsFileTime bereitgestellten Systemzeit möglicherweise nicht immer mit der tatsächlichen Aktualisierung übereinstimmt Von GetSystemTimeAdjustment gemeldetes Intervall.

Erläuterung:

GetSystemTimeAsFileTime bietet Zugriff auf die Wanduhr des Systems in 100-ns-Einheiten. Die tatsächliche Aktualisierungsrate der Systemzeit kann jedoch abhängig von Hardwarefaktoren und den Einstellungen der Multimedia-Timer-Schnittstelle variieren.

In Ihrem Fall meldet NtQueryTimerResolution einen Aktualisierungszeitraum von ~25µs, während GetSystemTimeAdjustment eine Anpassung anzeigt von 15,6 ms. Dies deutet darauf hin, dass die Systemzeit häufiger aktualisiert als tatsächlich synchronisiert wird.

Auswirkungen:

Dies bedeutet, dass die in Ihrer Zeitstempelschleife beobachteten Änderungen nicht ausschließlich sind aufgrund der vorgenommenen Zeitanpassung. Sie spiegeln vielmehr die zugrunde liegenden Aktualisierungen der Systemzeit wider, die mit einer höheren Häufigkeit erfolgen.

Empfohlener Ansatz:

Anstatt sich für ein genaues Timing auf GetSystemTimeAdjustment zu verlassen, sollten Sie dies in Betracht ziehen Verwenden von NtQueryTimerResolution, um das tatsächliche Aktualisierungsintervall der Systemzeit zu ermitteln. Dadurch erhalten Sie eine genauere Darstellung des Zeitverhaltens des Systems.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3