«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > ## Почему GetSystemTimeAdjustment не всегда отражает корректировку истинного времени в Windows 7?

## Почему GetSystemTimeAdjustment не всегда отражает корректировку истинного времени в Windows 7?

Опубликовано 9 ноября 2024 г.
Просматривать:129

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

Функции синхронизации Windows 7: понимание GetSystemTimeAdjustment

Как вы заметили, результаты использования функции GetSystemTimeAdjustment в Windows 7 могут оказаться загадочными. Чтобы лучше понять, давайте ответим на ваши вопросы:

Вопрос 1: Правильность предположения

Ваше предположение в целом верно. Если системное время периодически синхронизируется, можно ожидать либо отсутствия изменений, либо изменений, кратных приращению, полученному с помощью GetSystemTimeAdjustment.

Вопрос 2: Причина расхождения

Несоответствие, с которым вы столкнулись, связано с тем, что степень детализации системного времени, предоставляемая GetSystemTimeAsFileTime, может не всегда совпадать с фактическим интервалом обновления, сообщаемым GetSystemTimeAdjustment.

Объяснение:

GetSystemTimeAsFileTime обеспечивает доступ к настенным часам системы с шагом 100 нс. Однако фактическая скорость обновления системного времени может варьироваться в зависимости от аппаратных факторов и настроек интерфейса мультимедийного таймера.

В вашем случае NtQueryTimerResolution сообщает о периоде обновления ~ 25 мкс, а GetSystemTimeAdjustment указывает на корректировку. 15,6 мс. Это говорит о том, что системное время обновляется чаще, чем оно фактически синхронизируется.

Последствия:

Это означает, что изменения, наблюдаемые в вашем цикле меток времени, не являются исключительно из-за применения корректировки времени. Скорее, они отражают базовые обновления системного времени, которые происходят с более высокой частотой.

Рекомендуемый подход:

Вместо того, чтобы полагаться на GetSystemTimeAdjustment для определения точного времени, рассмотрите возможность использование NtQueryTimerResolution для определения фактического интервала обновления системного времени. Это обеспечит более точное представление временного поведения системы.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3