Просто поточнее —
typedef unsigned long long ull;
inline ull rdtsc() {
unsigned int lo, hi;
asm volatile ( "rdtsc\n" : "=a" (lo), "=d" (hi) );
return ((ull)hi << 32) | lo;
}
Вместо clock.
Могу написать статью, как мерить небольшие куски си-кода без всякой погрешности.