Windows 7 タイミング関数 - GetSystemTimeAdjustment の使用法を理解する
質問 1: 時間の増分と同期
はい、あなたの推測は正しいです。 GetSystemTimeAsFileTime 関数は、GetSystemTimeAdjustment によって取得される間隔の倍数の増分でタイムスタンプを返します。更新が行われていない場合は、後続の GetSystemTimeAsFileTime 呼び出しで変化は観察されません。
質問 2: 時刻同期の不一致
GetSystemTimeAdjustment 関数は、システムクロックの更新間隔。間隔は基盤となるハードウェアによって決定され、NtQueryTimerResolution 関数によって報告されます。
一般的なハードウェア プラットフォームは、NtQueryTimerResolution に対して約 156,250 または 100,144 の ActualResolution を返します。これは、システム クロックがそれぞれ 15.625 ミリ秒または 10 ミリ秒ごとに更新されることを示します。
ただし、マルチメディア タイマー インターフェイス (timeBeginPeriod および timeEndPeriod) はこの解像度をオーバーライドできます。短い周期 (1 ミリ秒など) で timeBeginPeriod を呼び出すと、ハードウェアがサポートしていない場合でも、システム クロックがより頻繁に更新されます。
この場合、報告された時間調整値 0.0156 秒は、標準的な時間調整値と一致します。ハードウェア解像度。ただし、マルチメディア タイマーが短い期間 (1 ミリ秒など) に設定されているため、実際の更新間隔は異なる場合があります。
実装メモ:
正確に行うにはシステム クロックの更新間隔を測定するには、NtQueryTimerResolution を使用します。 timeBeginPeriod/timeEndPeriod の呼び出しはシステム クロックに影響を与える可能性があることに注意し、頻繁な呼び出しは避ける必要があります。
以上がGetSystemTimeAdjustment はシステム クロックの更新間隔とどのように関係しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。