Статус QueryPerformanceCounter? - PullRequest
       5

Статус QueryPerformanceCounter?

5 голосов
/ 02 сентября 2011

Я читал о проблемах и неточности реализации QPC.Но все эти обсуждения и статьи кажутся довольно устаревшими.

Кто-нибудь знает, каково текущее состояние функциональности QPC на последних ОС Win7 и процессорах Intel / AMD?Были ли улучшения?Например, Turbo Boost по-прежнему является большой проблемой?

В основном меня интересует это, поскольку мне нужно решить, использовать ли timeGetTime и QueryPerformanceCounter для синхронизации в моем приложении.

1 Ответ

4 голосов
/ 03 сентября 2011

QPC был исправлен программным обеспечением компанией Microsoft много лет назад (старая статья в kb о проблеме: http://support.microsoft.com/kb/895980). Это исправление может быть установлено в любой целевой системе для разума (я видел несколько игр, делающих это), однако оно не должно быть необходимо. Все новые процессоры имеют аппаратное исправление / компенсацию для этого, а также правильную синхронизацию TSC между ядрами, поэтому проблемы с таймерами на основе RDTSC устранены. Исправление можно получить здесь: http://support.microsoft.com/?id=896256 Я не уверен, есть ли что-то для других систем, но, судя по всему, это исправление было унаследовано в ОС Windows Vista и Windows 7. Что касается вопроса точности, то это зависит от самого оборудования, однако Microsoft говорит, что QPC является наиболее надежным и точным таймером, который вы можете получить (с приличной производительностью), поэтому если не считать встроенного __rdtsc(), я сомневаюсь, что вы получите более точный ,

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