摘要:
在很多年以前,rdtsc 指令是在 x86 平台作 micro benchmark 的不二选择,它可以用很小的代价(基本上在几十个 CPU 周期)获得时间戳计数器 (time stamp counter) 的值,用来计算小代码段的性能是比较方便的。然而来了多核时代,以及变频时代,由于 CPU 核心的主频不是恒定的了,time stamp counter 的值不代表时间了;同时,又由于 CPU 有多个核心,这些核心之间的 time stamp counter 不一定是同步的,所以当进程在核心之间迁移后,rdtsc 的结果就未必有意义。这一点在陈硕的文章里说得很清楚:http://blog.csd 阅读全文