GetSystemTimeAdjustment がシステム時間の増分を誤解させる仕組み
GetSystemTimeAdjustment 関数はシステム時間調整に関する洞察を提供しますが、実際の時間を正確に反映しているわけではありません経験的観測によって証明されたように、システム クロックの更新に使用される間隔と増分。
仮定の妥当性
GetSystemTimeAsFileTime によって返されるタイムスタンプは変化がない、またはその倍数を示すはずであるという仮定システム時刻が定期的に同期されている限り、GetSystemTimeAdjustment によって取得される増分は正しいです。
不一致の理由
この不一致は、GetSystemTimeAsFileTime の 10 ns の分解能がはるかに遠いという事実に起因します。システムクロックの実際の更新周期を超えます。最新のシステムでは、クロックは通常、GetSystemTimeAdjustment によって報告される 0.0156 秒ではなく、0.0025 秒単位で増分されます。
この不一致は、GetSystemTimeAsFileTime が実際のクロック更新よりも高い解像度でシステム時間の変更を記録するために発生します。 。その結果、観察された変更は報告された増分と一致しません。
影響と代替
GetSystemTimeAdjustment に依存するのではなく、NtQueryTimerResolution を使用して実際の更新期間を決定します。 100 ns 単位のシステム時間。 NtQueryTimerResolution によって返される値は、NtSetTimerResolution またはマルチメディア タイマー インターフェイスを使用して設定できることに注意してください。ただし、この設定は、特にマルチメディア アプリケーションがアクティブな場合に、観測値に影響を与える可能性があります。
システム時間の推移を正確にキャプチャするには、GetSystemTimeAsFileTime によって返される FILETIME 値を監視します。連続した呼び出しの差を見ることで、実際の時間の増分を測定できます。
以上が**GetSystemTimeAdjustment はシステム時間の増分をどのように誤って表現しますか?**の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。