CPU时间戳获取
inline long long timt(){
long long p; int&a=*(((int*)&p)+1);
__asm__ __volatile__("rdtsc":"=a"(p),"=d"(a));
return p;
}
因为在64位CPU上rdtsc出来的结果仍然是在%eax和%edx,而%rax却不是由%eax和%edx拼起来的(反正我试了它没用...也许是我写错了?)那么似乎只能这么干了..
执行这么一次大概需要60个CPU周期...(其实还是非常快的)