Maison  >  Article  >  développement back-end  >  Quel est le lien entre GetSystemTimeAdjustment et les intervalles de mise à jour de l’horloge système ?

Quel est le lien entre GetSystemTimeAdjustment et les intervalles de mise à jour de l’horloge système ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-25 00:59:02486parcourir

How Does GetSystemTimeAdjustment Relate to System Clock Update Intervals?

Fonctions de synchronisation de Windows 7 - Comprendre l'utilisation de GetSystemTimeAdjustment

Question 1 : incréments de temps et synchronisation

Oui, votre hypothèse est correcte. La fonction GetSystemTimeAsFileTime renvoie les horodatages par incréments qui sont un multiple de l'intervalle récupéré par GetSystemTimeAdjustment. Si aucune mise à jour n'a eu lieu, aucun changement ne devrait être observé dans les appels ultérieurs à GetSystemTimeAsFileTime.

Question 2 : Écarts dans la synchronisation temporelle

La fonction GetSystemTimeAdjustment ne fournit pas directement la intervalle de mise à jour de l'horloge système. L'intervalle est déterminé par le matériel sous-jacent et est signalé par la fonction NtQueryTimerResolution.

Les plates-formes matérielles typiques renvoient une ActualResolution d'environ 156 250 ou 100 144 pour NtQueryTimerResolution. Cela indique que l'horloge système est mise à jour toutes les 15,625 ms ou 10 ms, respectivement.

Cependant, l'interface de minuterie multimédia (timeBeginPeriod et timeEndPeriod) peut remplacer cette résolution. L'appel de timeBeginPeriod avec une période plus courte (par exemple, 1 ms) force l'horloge système à se mettre à jour plus fréquemment, même si le matériel ne la prend pas en charge.

Dans votre cas, l'ajustement de l'heure signalé de 0,0156 seconde correspond à l'ajustement typique. résolution matérielle. Cependant, l'intervalle de mise à jour réel peut être différent en raison du réglage de la minuterie multimédia sur une période plus courte (par exemple, 1 ms).

Notes de mise en œuvre :

Pour préciser mesurez l'intervalle de mise à jour de l'horloge système, utilisez NtQueryTimerResolution. Sachez que les appels à timeBeginPeriod/timeEndPeriod peuvent affecter l'horloge système et que les appels fréquents doivent être évités.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn