#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 она недоступна, то вот тут есть ее виндовая реализация.
Комментариев нет:
Отправить комментарий