Windows 7 タイミング関数: GetSystemTimeAdjustment について
ご覧のとおり、Windows 7 で GetSystemTimeAdjustment 関数を使用した結果は不可解な場合があります。より深く理解するために、あなたの質問に答えてみましょう:
質問 1: 仮定の正しさ
あなたの仮定は一般的に正しいです。システム時間が定期的に同期されている場合は、変化がないか、GetSystemTimeAdjustment から取得した増分の倍数で変化することが予想されます。
質問 2: 不一致の理由
発生した不一致は、GetSystemTimeAsFileTime によって提供されるシステム時間の粒度が、GetSystemTimeAdjustment によって報告される実際の更新間隔と必ずしも一致しない可能性があることが原因です。
説明:
GetSystemTimeAsFileTime は、システムの壁時計へのアクセスを 100ns 単位で提供します。ただし、システム時間の実際の更新速度は、ハードウェア要因やマルチメディア タイマー インターフェイスの設定によって異なる場合があります。
この場合、NtQueryTimerResolution は約 25μs の更新周期を報告していますが、GetSystemTimeAdjustment は調整を示しています。 15.6ミリ秒。これは、システム時刻が実際に同期されているよりも頻繁に更新されていることを示唆しています。
意味:
これは、タイムスタンプ ループ内で観察された変更は、それだけではないことを意味します。時間調整が適用されているため。むしろ、これらは、より高い頻度で発生する、システム時間の基礎となる更新を反映します。
推奨されるアプローチ:
正確なタイミングを取得するために GetSystemTimeAdjustment に依存する代わりに、次のことを考慮してください。 NtQueryTimerResolution を使用して、システム時間の実際の更新間隔を決定します。これにより、システムのタイミング動作がより正確に表現されます。
以上が## Windows 7 で GetSystemTimeAdjustment が必ずしも正確な時刻調整を反映しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。