Windows 7 タイミング関数: GetSystemTimeAdjustment について
ご覧のとおり、Windows 7 で GetSystemTimeAdjustment 関数を使用した結果は不可解な場合があります。より深く理解するために、あなたの質問に答えてみましょう:
質問 1: 仮定の正しさ
あなたの仮定は一般的に正しいです。システム時間が定期的に同期されている場合は、変化がないか、GetSystemTimeAdjustment から取得した増分の倍数で変化することが予想されます。
質問 2: 不一致の理由
発生した不一致は、GetSystemTimeAsFileTime によって提供されるシステム時間の粒度が、GetSystemTimeAdjustment.
説明:
によって報告される実際の更新間隔と必ずしも一致しない可能性があるという事実によるものです。 ]GetSystemTimeAsFileTime は、システムの壁時計へのアクセスを 100ns 単位で提供します。ただし、システム時間の実際の更新速度は、ハードウェア要因やマルチメディア タイマー インターフェイスの設定によって異なる場合があります。
この場合、NtQueryTimerResolution は約 25μs の更新周期を報告していますが、GetSystemTimeAdjustment は調整を示しています。 15.6ミリ秒。これは、システム時刻が実際に同期されているよりも頻繁に更新されていることを示唆しています。
影響:
これは、タイムスタンプ ループ内で観察された変更は、それだけではないことを意味します。時間調整が適用されているため。むしろ、これらは、より高い頻度で発生する、システム時間の基礎となる更新を反映します。
推奨されるアプローチ:
正確なタイミングを取得するために GetSystemTimeAdjustment に依存する代わりに、次のことを考慮してください。 NtQueryTimerResolution を使用して、システム時間の実際の更新間隔を決定します。これにより、システムのタイミング動作がより正確に表現されます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3