Доступен ли HPET напрямую в Windows? - PullRequest
11 голосов
/ 24 апреля 2009

Я хотел бы использовать высокопроизводительный таймер событий (HPET) для инструмента профилирования для быстрого и очень точного измерения. timeGetTime не обеспечивает достаточного разрешения в 1 мс, а QueryPerformanceCounter намного медленнее для чтения, чем мне бы хотелось. Я сталкивался с HPET во время исследования проблемы, но не вижу примеров того, как на самом деле ее решить.

Так могу ли я использовать его напрямую (сборка в порядке), или я должен полагаться на мультимедийные / высокопроизводительные инструменты синхронизации, уже встроенные в Win32 API?

Ответы [ 2 ]

1 голос
/ 13 ноября 2009

Я также заинтересован в использовании HPET, но в качестве таймера. Насколько я понимаю, QueryPerformanceCounter и QueryPerformanceFrequency фактически получают доступ к счетчику и часам для HPET, и это работает под Windows XP (см., Например, http://www.geisswerks.com/ryan/FAQS/timing.html).

Итак, что касается временного кода, я думаю, что используя QueryPerformanceCounter, вы фактически получаете доступ к счетчику, который составляет основу HPET, и все это присутствует в чипсете (а не в процессоре).

0 голосов
/ 24 апреля 2009

Я нашел эту информацию , пока копался, и кажется, что это может быть наиболее экономически эффективным способом. Я попробую это, когда у меня хватит смелости копаться в сборке. :)

UPDATE

Я проверил это с помощью своего профилировщика. хотя и немного быстрее, кажется, у меня все еще есть тонны других накладных расходов :( (я не беспокоился о сроках, так как мне это не показалось достаточным преимуществом)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...