Maison  >  Article  >  développement back-end  >  ## Pourquoi GetSystemTimeAdjustment ne reflète-t-il pas toujours l'ajustement de l'heure réelle sous Windows 7 ?

## Pourquoi GetSystemTimeAdjustment ne reflète-t-il pas toujours l'ajustement de l'heure réelle sous Windows 7 ?

DDD
DDDoriginal
2024-10-25 04:59:02466parcourir

## Why Does GetSystemTimeAdjustment Not Always Reflect the True Time Adjustment on Windows 7?

Fonctions de synchronisation de Windows 7 : comprendre GetSystemTimeAdjustment

Comme vous l'avez observé, les résultats de l'utilisation de la fonction GetSystemTimeAdjustment sur Windows 7 peuvent être déroutants. Pour mieux comprendre, répondons à vos questions :

Question 1 : Exactitude de l'hypothèse

Votre hypothèse est généralement correcte. Si l'heure du système est périodiquement synchronisée, vous ne vous attendez à aucun changement ou à des changements multiples de l'incrément obtenu à partir de GetSystemTimeAdjustment.

Question 2 : Raison de l'écart

Le L'écart que vous avez rencontré est dû au fait que la granularité de l'heure système fournie par GetSystemTimeAsFileTime peut ne pas toujours correspondre à l'intervalle de mise à jour réel signalé par GetSystemTimeAdjustment.

Explication :

GetSystemTimeAsFileTime permet d'accéder à l'horloge murale du système par unités de 100 ns. Cependant, le taux de mise à jour réel de l'heure du système peut varier en fonction de facteurs matériels et des paramètres de l'interface de minuterie multimédia.

Dans votre cas, NtQueryTimerResolution signale une période de mise à jour d'environ 25 µs, tandis que GetSystemTimeAdjustment indique un ajustement. de 15,6 ms. Cela suggère que l'heure du système est mise à jour plus fréquemment qu'elle n'est réellement synchronisée.

Implications :

Cela signifie que les changements observés dans votre boucle d'horodatage ne sont pas uniquement en raison de l'ajustement du temps appliqué. Ils reflètent plutôt les mises à jour sous-jacentes de l'heure du système, qui se produisent à une fréquence plus élevée.

Approche recommandée :

Au lieu de compter sur GetSystemTimeAdjustment pour une synchronisation précise, envisagez en utilisant NtQueryTimerResolution pour déterminer l’intervalle de mise à jour réel de l’heure système. Cela fournira une représentation plus précise du comportement temporel du système.

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