Я лично использую счетчик меток времени через обертку сборки, которая выполняет инструкцию rdtsc. Затем я получаю 64-разрядное целое число без знака, содержащее число внутренних тактовых циклов, прошедших с момента включения процессора. Разница между двумя считываниями заключается в количестве циклов кода, необходимых для выполнения части кода между ними. Доступ к инструкциям для считывания попаданий в кэш может быть реализован таким же образом.
Мне трудно понять, какие выводы можно сделать из чтения счетчиков кэша, не имея временных рамок для связи. Этот период времени не должен быть слишком длинным, иначе переключение задач или прерывание могут повлиять на значение.
Согласно Microsoft, инструкция rdtsc может быть неточной, если на процессоре включена функция понижающего регулирования (для снижения энергопотребления), о которой следует помнить (или отключать!).