Страницы

Поиск по вопросам

четверг, 13 февраля 2020 г.

разрешение аппаратного таймера

#cpp #windows #время


С помощью команды в терминале powercfg -energy duration 5 узнал величину разрешение
аппаратного таймера: 15,6 мс. В моих программах требуется, чтобы эта величина равнялась
1 мс. Как этого добиться при запуске программы?
Для программирования пользуюсь Visual Studio 2013\2015, язык C++.

PS Замечания к ответу от avp: вот тут я уже задавал вопрос про таймеры и многие попробовал.
Поскольку работал с сетью, то отслеживал еще и через wireshark время пакетов отправленных
с помощью таймеров. Результат оказывался плачевным.
    


Ответы

Ответ 1



Возможно, функции timeBeginPeriod и timeEndPeriod (MSDN) это то что вам нужно. С их помощью, вы как раз сможете выставить желаемую точность в 1мс.

Ответ 2



Не тот таймер используете. Вообще-то в системе их несколько, но не всегда очевидно, как ими правильно пользоваться. Поэтому, возможно лучшим решением будет использовать функцию gettimeofday, которая выдает время с точностью до микросекунд (до какой степени им можно доверять это уже другой вопрос). Если в VS она недоступна, то вот тут есть ее виндовая реализация.

Комментариев нет:

Отправить комментарий