Показать сообщение отдельно
Старый 09.01.2011, 19:00   #12  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5813 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Gustav Посмотреть сообщение
Для расширения нашего кругозора - про таймеры Windows: http://cprime.110mb.com/lesson/0106/6-1.php
Цитата:
Следует учесть, что хотя временные интервалы таймеров задаются в относительно мелких единицах (миллисекундах или даже меньше), реально практически невозможно измерить (или отсчитать) время меньшее, чем 10-20 миллисекунд. Для гарантированного отсчета таких маленьких временных интервалов необходимо писать драйвер. [...] Похоже также, что частота прерываний от таймера в современных версиях Windows больше, чем 18.2 раза в секунду. По крайней мере в Windows 98 и Windows 2000 отличия точно имеются.
Да, во-первых, частота выше, во-вторых, при желании можно с помощью штатного таймера и некоторой перенастройки Windows измерять интервалы длиной порядка 1мс - см. Windows Internals, раздел «Параметры в Boot.ini»:
Цитата:
/TIMERES=
В системах со стандартной многопроцессорной x86-версией HAL (Halmps.dll) задает разрешение системного таймера. Аргументом является значение в сотнях наносекунд, но частота устанавливается в соответствии с ближайшим меньшим значением, поддерживаемым HAL (см. ниже).
Код:
Сотни наносекунд Миллисекунды (мс)
9766             0,98 
19532            2,00
39063            3,90 
78125            7,80
Разрешение по умолчанию - 7,8 мс. Разрешение системного таймера влияет на разрешение ожидаемых таймеров. Например, параметр /TIMERES=21000 установит разрешение таймера равным 2,0 мс