#include inline unsigned long getTimestamp(){ unsigned hi,lo; asm ("rdtsc": "=a" (lo), "=d" (hi) ); return ((unsigned long) lo ) | ((unsigned long) hi << 32); } inline unsigned long getTimestampVolatile(){ unsigned hi,lo; asm volatile("rdtsc": "=a" (lo), "=d" (hi) ); return ((unsigned long) lo )| ((unsigned long) hi << 32); } int main(void){ unsigned long t1=getTimestamp(); unsigned long t2=getTimestamp(); std::cout << "Hello 1 -- " << t1 <