RDTSCP и QueryPerformanceCounter
От: maks1180  
Дата: 01.01.22 03:55
Оценка: -1
QueryPerformanceCounter реализовано в Windows 10 при помощи инструкции RDTSCP в юзермоде.
RDTSCP — возвращает количество тактов с момента последнего сброса процессора
Но частота CPU может менять, поэтому такт будет занимать разное время.
Как можно пологаться на точное измерение времени через QueryPerformanceCounter/RDTSCP ?
===============================================
(реклама, удалена модератором)
Re: RDTSCP и QueryPerformanceCounter
От: CreatorCray  
Дата: 01.01.22 05:26
Оценка: +1
Здравствуйте, maks1180, Вы писали:

M>Но частота CPU может менять, поэтому такт будет занимать разное время.


The invariant TSC will run at a constant rate in all ACPI P-, C-. and T-states.


Так что нет, не будет.
Оно плавало на уже очень старых процах, но ещё с P4 (AFAIR) его сделали постоянным.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[2]: RDTSCP и QueryPerformanceCounter
От: maks1180  
Дата: 01.01.22 13:32
Оценка:
CC>Так что нет, не будет.
CC>Оно плавало на уже очень старых процах, но ещё с P4 (AFAIR) его сделали постоянным.

Спасибо, на разных ядрах это значение может различаться в одно и тоже время ?
===============================================
(реклама, удалена модератором)
Отредактировано 01.01.2022 13:33 maks1180 . Предыдущая версия .
Re[3]: RDTSCP и QueryPerformanceCounter
От: кт  
Дата: 15.01.22 10:17
Оценка:
Здравствуйте, maks1180, Вы писали:

M>Спасибо, на разных ядрах это значение может различаться в одно и тоже время ?


Мой личный опыт показывает, что да. Попытка замерять такты при работе на двух ядрах приводила даже к обратному течению времени, т.е. такты при следующей RDTSC вдруг уменьшались. Отключение одного ядра все исправляло. Думаю, это связано с простоями и ожиданиями.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.