Полностью гарантированные согласованные значения RDTSC нецелесообразны. например вам нужно будет отключить прерывания, а также обычные вещи, такие как отключение турбо, чтобы процессор работал с постоянной скоростью после простоя.
(Обратите внимание, что RDTSC на современных процессорах учитывает эталонный циклов, а не фактических тактов ядра. Получить счетчик циклов ЦП? )
И вам придется прогреть кеширование + прогнозирование ветвлений + все и довести процессор до максимальной тактовой частоты перед первым временным тестом. Если вы проводите временные тесты отдельно, на самом деле полезно синхронизировать первое с «холодным» состоянием.
На практике люди не отключают прерывания, а просто игнорируют сильные выбросы в предположении, что прерывание или что-то произошло во время этого теста. В любом случае вы не можете отключить SMM или NMI.