rdtsc 备忘

Posted Terark-CTO-雷鹏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rdtsc 备忘相关的知识,希望对你有一定的参考价值。

请关注我们的技术创业项目 Terark,领先的数据技术提供商


from: http://stackoverflow.com/questions/6814792/why-is-clock-gettime-so-erratic


static uint64_t rdtsc() 
#if defined(__GNUC__)
#   if defined(__i386__)
    uint64_t x;
    __asm__ volatile (".byte 0x0f, 0x31" : "=A" (x));
    return x;
#   elif defined(__x86_64__)
    uint32_t hi, lo;
    __asm__ __volatile__ ("rdtsc" : "=a"(lo), "=d"(hi));
    return ((uint64_t)lo) | ((uint64_t)hi << 32);
#   else
#       error Unsupported architecture.
#   endif
#elif defined(_MSC_VER)
    return __rdtsc();
#else
#   error Other compilers not supported...
#endif



以上是关于rdtsc 备忘的主要内容,如果未能解决你的问题,请参考以下文章

使用 rdtsc 计算秒数

Linux上采用rdtsc指令对C/C++程序进行性能测试

Linux上采用rdtsc指令对C/C++程序进行性能测试

动态监控 rdtsc 的性能

VisualStudio 2010 Express 上的 RDTSC - C++ 不支持默认整数

使用 CPU 计数器与 gettimeofday?