The other answers work, but you can avoid inline assembly by using GCC’s __rdtsc
intrinsic, available by including x86intrin.h
.
It is defined at: gcc/config/i386/ia32intrin.h
:
/* rdtsc */
extern __inline unsigned long long
__attribute__((__gnu_inline__, __always_inline__, __artificial__))
__rdtsc (void)
{
return __builtin_ia32_rdtsc ();
}