Поскольку это процессор Intel, вы всегда можете использовать RDTSC. Это инструкция на ассемблере, которая возвращает текущий счетчик циклов - 64-битный счетчик, который увеличивает каждый цикл. Это было бы немного приблизительно, но, например,
#include <stdio.h>
#include <stdint.h>
#include <unistd.h>
uint64_t rdtsc(void)
{
uint32_t ret0[2];
__asm__ __volatile__("rdtsc" : "=a"(ret0[0]), "=d"(ret0[1]));
return ((uint64_t)ret0[1] << 32) | ret0[0];
}
int main(int argc, const char * argv[])
{
uint64_t startCount = rdtsc();
sleep(1);
uint64_t endCount = rdtsc();
printf("Clocks per second: %llu", endCount - startCount);
return 0;
}
Вывод 'тактовых импульсов в секунду: 2002120630' на моем MacBook Pro 2 ГГц.