Что происходит, когда QueryPerformanceCounter называют?

Можно попробовать переключатель-q.

-q, - тихий Тихий вывод - только показывают ошибки

19
задан Matt Price 12 November 2009 в 16:45
поделиться

3 ответа

Windows QueryPerformanceCounter () имеет логику для определения количества процессоров и вызова логики синхронизации при необходимости. Он пытается использовать регистр TSC, но для многопроцессорных систем не гарантируется, что этот регистр будет синхронизироваться между процессорами (и, что более важно, он может сильно различаться из-за интеллектуального понижения частоты и состояний сна).

MSDN сообщает, что не имеет значения, на каком процессоре это вызвано, поэтому вы можете увидеть дополнительный код синхронизации для такой ситуации, вызывающей накладные расходы. Также помните, что он может вызывать передачу по шине, поэтому вы можете видеть задержки из-за конкуренции на шине.

Попробуйте использовать SetThreadAffinityMask (), если возможно, чтобы привязать его к определенному процессору. В противном случае вам, возможно, придется жить с задержкой или вы можете попробовать другой таймер (например, взгляните на http: // en.

10
ответ дан 30 November 2019 в 04:52
поделиться

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

Вот небольшая статья из MSDN: http://msdn.microsoft.com/ja-jp/library/cc399059.aspx

Кроме того, если вы запрашиваете производительность нескольких процессоров (в отличие от нескольких ядер на одном процессоре), он будет должны общаться через шину, которая работает медленнее и может быть там, где вы видите некоторые блокировки.

Однако, как я уже сказал, прошло довольно много времени.

Майк

2
ответ дан 30 November 2019 в 04:52
поделиться

У меня создалось впечатление, что на x86 QueryPerformanceCounter () просто вызывает rdtsc под прикрытием. Я удивлен, что у него есть замедление на многоядерных машинах (я никогда не замечал этого на моем 4-ядерном процессоре).

3
ответ дан 30 November 2019 в 04:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: